今回は、クリックしたセルの色を変える方法です。
何に使えるの??って感じですが、書いていきますw
↓実演動画
https://youtu.be/TNX0Du5tvKE
今回は、シート名の右クリックして、「コードの表示」をクリックしてください。
今回は、その中にコードを書いていきます。
ソースコードは下記の通りです。
'ダブルクリックの処理
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Interior.Color = vbRed
End Sub
'右クリックの処理
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Target.Interior.Color = vbGreen
End Sub
'左クリックの処理
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column > 9 Then Exit Sub
Select Case Target.Interior.ColorIndex
Case Is = xlNone
Target.Interior.ColorIndex = 5
Case Else
Target.Interior.ColorIndex = xlNone
End Select
End Sub
詳細を説明します。
①ダブルクリックの判定
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ダブルクリックの判定には、「Worksheet_BeforeDoubleClick」プロシージャを使用します。
Worksheet_BeforeDoubleClickについては、下記のサイトが参考になると思います。
https://vbabeginner.net/detect-cell-double-clicks/
Target.Interior.Color = vbRed
Targetには、ダブルクリックされたセルの位置が入っていますので、そのセルの色を赤色に変更しています。
②右クリックの判定
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
右クリックの判定には、「Worksheet_BeforeRightClick」プロシージャを選択します。
Worksheet_BeforeRightClickについては、下記のサイトが参考になると思います。
https://vbabeginner.net/worksheet_beforerightclick/
Target.Interior.Color = vbGreen
Targetには、右クリックされたセルの位置が入っていますので、そのセルの色を緑色に変更しています。
③左クリックの判定
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
左クリックの判定には、「Worksheet_SelectionChange」プロシージャを使用します。
Worksheet_SelectionChangeについては、下記のサイトが参考になると思います。
http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040727.html
If Target.Column > 9 Then Exit Sub
これは、反映する範囲を制御するために書いてます。
列の10行目以降のセルを選択した場合は、処理を終了しています。
Select Case Target.Interior.ColorIndex
Case Is = xlNone
Target.Interior.ColorIndex = 5
Case Else
Target.Interior.ColorIndex = xlNone
End Select
Case文で、クリックしたセルが塗りつぶし無しであれば、ColorIndexで番号を指定して色を変更し、それ以外であれば、塗りつぶし無しに変更しています。
以上が、クリックしたセルの色を変える方法でした。