エクセルVBAにて
'処理を実行する、セルの選択範囲を指定して処理を実行後
'範囲外の処理を下記の通り処理できますが、
Else
C = Split("0 0 0 0 0")
End If
複数のセルを選択した場合エラーになります。
エラーにならない処理方法を教えて下さい。
例
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim C As Variant Dim i As Integer
If Not Intersect(Range("e36:i40"), Target) Is Nothing Then Target) Is Nothing Then Exit Sub
Select Case Target.Row
Case 36
C = Split("3 0 0 0 0")
Case 37
C = Split("0 3 0 0 0")
Case 38
C = Split("0 0 3 0 0")
Case 39
C = Split("0 0 0 3 0")
Case 40
C = Split("0 0 0 0 3")
End Select
Else
C = Split("0 0 0 0 0")
End If
For i = 0 To 4
ActiveSheet.Shapes(i + 1).Select
Selection.Font.ColorIndex = C(i)
Next i
Target.Select
End Sub
これでよい?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim C As Variant
Dim i As Integer
Dim Rng As Range
For Each Rng In Target
If Not Intersect(Range("e36:i40"), Rng) Is Nothing Then
Select Case Rng.Row
Case 36
C = Split("3 0 0 0 0")
Case 37
C = Split("0 3 0 0 0")
Case 38
C = Split("0 0 3 0 0")
Case 39
C = Split("0 0 0 3 0")
Case 40
C = Split("0 0 0 0 3")
End Select
Else
C = Split("0 0 0 0 0")
End If
For i = 0 To 4
ActiveSheet.Shapes(i + 1).Select
Selection.Font.ColorIndex = C(i)
Next i
Next Rng
Target.Select
End Sub
お礼
hige_082様 大変お世話になりました。 問題なく解決する事が出来ました。 深く感謝申し上げます。