VBA セルをダブルクリックしたらイベントを実行する




ステートメント構文など
Worksheet_BeforeDoubleClick

VBAを使ってエクセル上でセルをダブルクリックしたら何かしらVBAで処理をする方法です。
コードを記述する場所は[Microsoft Excel Objects]の中の実行したいワークシート(Sheet1(Sheet1))などです。


サンプルコード
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    'セルのA2:A5の範囲がダブルクリックされた時を対象
    If Not Intersect(Target, Range("A2:A5")) Is Nothing Then
        '処理例~~
        Cells(Target.Row, 2).Select
        MsgBox (Cells(Target.Row, 3))
    End If

End Sub



実行結果イメージ(セルA3をダブルクリックしています)


解説
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
セルをダブルクリックしたときに発生するイベントです。
クリックしたセルが引数[Target]となります。

If Not Intersect(Target, Range("A2:A5")) Is Nothing Then
Range("A2:A5")の範囲の場合を対象として処理をしようとしています。
Intersectは「横切る」の意味で「指定した範囲ではなくない場合ならば」という2重否定になっています。


引数[Target]にはクリックした行や列の情報が入っているので
Target.Row
で行番号が
Target.Column
で列番号が取得できます。


Cells(Target.Row, 2).Select
は一応クリックしたセルが編集モードにならないように隣のセルを選択しています。


関連・類似ページ
プロシージャを呼び出す

関連にある「Callステートメント」と併用することで色々と用途の幅は広がると思います。