2016-04-19 15 views
0

セルをクリックしたときにシェイプの色を変更するコードを探しています。 例は、アイルランドでセルB22に位置するS_IRLです。セルがクリックされたときにシェイプカラーを変更する

セルB22のシェイプS_IRLが青色から赤色に変わったらどうなるのでしょうか。次に、ある国のある別のセルをクリックすると、対応する図形が赤色に変わり、前の色が前の色に戻ります。 すべてのヘルプ大幅にあなたがシートにするときの選択の変更を発生させますワークシートのコードで新しいサブルーチンを追加することができます enter image description here

答えて

1

をいただければ幸いです。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

    Dim strShapeName As String 'Variable to hold the shape name 
    Dim shp As Shape 'Variable to hold a shape object 

    'Detect if the click was in range A:C 
    If Not Intersect(Target, Range("A:C")) Is Nothing Then 

     'Boom... set all the shapes to blue 
     For Each shp In Me.Shapes 
      If Left(shp.Name, 2) = "S_" Then shp.Fill.ForeColor.RGB = RGB(0, 0, 255) 
     Next shp   

     'Grab the shape name from Column A 
     strShapeName = Cells(Target.Row, 1).Value 

     'Set the color of the shape to red 
     Shapes(strShapeName).Fill.ForeColor.RGB = RGB(255, 0, 0) 
    End If 
End Sub 

選択変更がした場合、これは検出されます列A、B、またはCのセル。列Aから図形の名前を取得し、その図形の色を赤に設定します。

+0

以前に選択したシェイプを元の色に戻すことはありません。 – OldUgly

+0

@JNevillあなたがコメントでタグ付けしていないので、あなたがOldUglyのコメントを見たかどうかは分かりませんが、別の選択が行われると元の色に戻るコードは提供されませんでした。 –

+1

それは私がそれを残しているようです。モバイルで書くのが難しい – JNevill

関連する問題