Excelでセルのダブルクリックや右クリックでVBAを起動する方法

Excelでセルのダブルクリックや右クリックでVBAを起動する方法

Posted at July 4,2014 12:55 AM
Tag:[Excel, VBA]

Excelのセルのダブルクリックや右クリックでVBAを起動する方法を紹介します。

1.問題点

VBAを起動するには、通常、「開発」→「挿入」でフォームコントロールやActiveXコントロールのボタンを設置し、それをクリックなどすればOKです。

開発メニュー

が、セルのダブルクリックや右クリックでVBAを起動する方法がわかりません。

2.ダブルクリックや右クリックでVBAを起動する

ここではダブルクリックでVBAを起動する方法を例に説明します。右クリックの場合も手順は同じです。

ダブルクリックや右クリックでVBAを起動するには、まずAlt+F11でVBEを起動します。

VBE

「Sheet1」シートでの操作を対象にする場合、左ツリーの「Sheet1」をダブルクリック。

VBE

「Sheet1」の入力画面が開くので、入力エリア上部にある「(General)」から「Worksheet」を選択。

VBE

メソッドのひながた(今回は使用しません)が自動入力されると同時に、さきほどの右隣にあるプルダウンが「SelectionChange」になります。

VBE

「SelectionChange」から「BeforeDoubleClick」を選択。右クリックの場合は「BeforeRightClick」を選択してください。

VBE

これで次のコードが自動入力されます。

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を起動する方法を紹介しましたが、他にもいろいろなイベントが用意されていますので試してみるとよいでしょう。

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)