Excelでセルのダブルクリックや右クリックでVBAを起動する方法
Excelのセルのダブルクリックや右クリックでVBAを起動する方法を紹介します。
1.問題点
VBAを起動するには、通常、「開発」→「挿入」でフォームコントロールやActiveXコントロールのボタンを設置し、それをクリックなどすればOKです。
が、セルのダブルクリックや右クリックでVBAを起動する方法がわかりません。
2.ダブルクリックや右クリックでVBAを起動する
ここではダブルクリックでVBAを起動する方法を例に説明します。右クリックの場合も手順は同じです。
ダブルクリックや右クリックでVBAを起動するには、まずAlt+F11でVBEを起動します。
「Sheet1」シートでの操作を対象にする場合、左ツリーの「Sheet1」をダブルクリック。
「Sheet1」の入力画面が開くので、入力エリア上部にある「(General)」から「Worksheet」を選択。
メソッドのひながた(今回は使用しません)が自動入力されると同時に、さきほどの右隣にあるプルダウンが「SelectionChange」になります。
「SelectionChange」から「BeforeDoubleClick」を選択。右クリックの場合は「BeforeRightClick」を選択してください。
これで次のコードが自動入力されます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub
これで「Sheet1」シートのセルをダブルクリックすると、この関数Worksheet_BeforeDoubleClick()が起動します。
第1パラメータのTargetはダブルクリックしたセルの座標です。
次のように記述すればダブルクリックした座標を出力します。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox Target.Address
End Sub
第2パラメータのCancelは、ダブルクリックイベントしたときにセルにカーソルが入った状態にするかどうかを決めます。
下記のよう「True」を設定にすれば、ダブルクリックをしてもセル内にカーソルが入りません。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub
デフォルト値はFalseなので、セル内にカーソルが入ってよければ、
Cansel = False
を記述する必要はありません。
2.他のイベントについて
本エントリーではダブルクリックや右クリックでVBAを起動する方法を紹介しましたが、他にもいろいろなイベントが用意されていますので試してみるとよいでしょう。