構文
Worksheet_SelectionChange(ByVal Target As Range)
Target・・・ クリックしたセル位置をRange形式で取得
WorkSheet内のセルをシングルクリックした際に起動します。
Worksheet_SelectionChangeイベントのサンプルコード
標準モジュールではなく、WorkSheetモジュール(Microsoft_Excel_Objects_Sheet1_(Sheet1)等)に記載します。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'■どこのセルでも良い場合
MsgBox "クリックされました"
'■特定セルで起動する場合(セルE10)
If Target.Address = "$E$10" Then
MsgBox "特定セル"
End If
'■特定セル範囲で起動する場合(セルのC4~E5)
If Not Intersect(Target, Range("C4:E5")) Is Nothing Then
MsgBox "特定セル範囲"
End If
'■特定列で起動する場合(B列(2列目)の場合)
If Target.Column = 2 Then
MsgBox "特定列"
End If
'■特定行で起動する場合(1行目の場合)
If Target.Row = 1 Then
MsgBox "特定行"
End If
End Sub
注意点
- 標準モジュール(Module1等)に記載しても動作しません。
- 該当の処理をしたいWorkSheetモジュールに記載しましょう。
- 例ではMsgboxで表示していますが、こちらをよく使うのは別プロシージャの呼び出しです。
Callを使った他プロシージャの呼出、引数付きのSubプロシージャやFunctionプロシージャなどを呼び出しするケースが大半でしょう。
関連記事
特定のセル範囲で値が変更された時に処理を実行【ExcelVBA】
特定のセルがダブルクリックされた場合に処理を実行する【BeforeDoubleClick】【ExcelVBA】
特定のセルで右クリックした場合に処理を実行する【BeforeRightClick】【ExcelVBA】



コメント