セルのクリックでセルを着色・脱色し、範囲選択で一括脱色したい
やりたいことはタイトルの通りです。
コードと問題点は以下の通りです。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'複数選択したセルを着色
'下記2行を有効にすると、下記2行含む、以下全てのコードが機能しなくなります。
'下記2行を無効にすると、複数選択したセルの脱色が有効になり、クリックしたセルも着色されます。
If Target.Count <= 1 Then Exit Sub
Target.Interior.ColorIndex = xlNone
'「Row」と入力しても、なぜか自動で「row」になります
'その上、指定した通りの範囲条件が適用されません
If Target.row >= 11 And Target.Column >= 6 Then Exit Sub
Select Case Target.Interior.ColorIndex 'クリックしたセルの色が
Case Is = xlNone '無色の場合は
Target.Interior.ColorIndex = 3 '「3」赤色に着色
Case Else 'それ以外の色の場合は
Target.Interior.ColorIndex = xlNone '無色にする
End Select
End Sub
以上、どなたか問題点をご教示いただけないでしょうか。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
以下は、頂いたアドバイスを参考に修正を加えたものです。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'(A1:E10)の範囲内で、クリックした単一のセルを着色
If Target.Count <= 1 And Target.row <= 10 And Target.Column <= 5 Then
Select Case Target.Interior.ColorIndex '複数選択したセルの色が
Case xlNone '無色の場合は
Target.Interior.ColorIndex = 3 '「3」赤色に着色
Case Else 'それ以外の色の場合は
Target.Interior.ColorIndex = xlNone '無色にする
Exit Sub
End If
'(A1:E10)の範囲内で、複数選択したセルを塗りつぶし無しにする
If Target.row <= 10 And Target.Column <= 5 Then
Target.Interior.ColorIndex = xlNone
Exit Sub
End If
End Sub
これで、目的通りの動きを実現できました。ご回答ありがとうございました。