ステートメント構文など
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ステートメント」と併用することで色々と用途の幅は広がると思います。