セルをダブルクリックしてマクロを実行するには、イベントプロシージャからマクロを呼べばいいということをご紹介しました。
ご紹介したイベントプロシージャでは、ワークシートのどのセルをダブルクリックしてもマクロが実行されます。
実務では、ワークシートの一部のセルをダブルクリックしたときだけマクロを実行したい、という要望もよくいただきます。
その方法をご紹介しておきましょう。
※G8:G20セルをダブルクリックしたときだけMacro_Sampleマクロを実行する例
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("G8:G20")) Is Nothing Then Exit Sub
Call Macro_Sample
Cancel = True
End Sub先日ご紹介したイベントプロシージャは以下のようなコードでした。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Call Macro_Sample
Cancel = True
End Sub
今回のコードは、先日ご紹介したコードの「Call Macro_Sample」の前に
「If Intersect(Target, Range("G8:G20")) Is Nothing Then Exit Sub」
を入れて、もし、G8:G20セルでなければ、このイベントプロシージャを抜けるようにしています。
▼サンプルファイル(013874.xls 36KByte)ダウンロード
サンプルファイルには
「どこでも実行」シート
「G8G20セルでのみ実行」シート
を作成して、それぞれどのセルのダブルクリックでもマクロが実行される、G8:G20セルでのみ実行されるイベントプロシージャを作成してあります。
Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » 一部のセルをダブルクリックしたときだけマクロを実行する