【Excel VBA】セルをダブルクリックした時にマクロを実行する方法を紹介【シートイベント】

Excel
スポンサーリンク

今回は対象のシート内セルをダブルクリックしたときにマクロを実行する方法を紹介します。

Worksheet_BeforeDoubleClickイメージ

VBAを使えるようにする方法については以前紹介していますので、是非参考にしていただければと思います!

スポンサーリンク

作成イメージ

こちらが作成イメージです。「BeforeDoubleClick」シート内のセルをダブルクリックすると、ダブルクリックしたセル番地がメッセージボックスで表示されます。

作成イメージ
スポンサーリンク

コード紹介

それでは、コードの紹介です。

なお、コードは実行するシート先に貼り付けてください。今回はSheet1(BeforeDoubleClick)に貼り付けます。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    Cancel = True
    
    MsgBox "「" & Target.Address & "」がクリックされました。"

End Sub
スポンサーリンク

コードのポイント

今回のコードのポイントについて説明します。

シートイベント

まず、以下のコードです。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Worksheet_何たら、って書いていますよね。

Excel VBAには、対象シート・ブック上で特定の操作をした際に実行される専用のプロシージャが用意されています。このプロシージャをイベントプロシージャと呼びます。

Worksheet_BeforeDoubleClickの場合、記述したシートのセルをダブルクリックした時に実行される、といった感じですね。これを記述していないシートのセルをダブルクリックしても何もないので注意しましょう。

Target,Cancel

次は、引数として指定されているTargetCancelです。

ByVal Target As Range, Cancel As Boolean

Targetは、ダブルクリックしたRangeが取得されます。例えば、A1セルをクリックすれば、TargetにA1セルの情報が格納される感じです。

なので今回の場合、MsgBoxとTarget.Addressでダブルクリックしたセル番地を表示しているわけですね。

MsgBox "「" & Target.Address & "」がクリックされました。"

Cancelは、ダブルクリックしたセルを編集状態にするかどうか指定します。初期値はFalseです。

状態
True編集状態にしない
False(初期値)編集状態にする

特にいじらなくてもマクロは動くのですが、毎回編集状態になるのは少々煩わしいので個人的にはソースの初めの方でTrueにしておくのがおすすめです!

Cancel = True

まとめ

今回は備忘録気味ですが、BeforeDoubleClickについて紹介しました。

ダブルクリック時以外にもシートをアクティブにした時や、変更を加えた時に実行できるプロシージャも用意されていますので、是非活用していただければと思います!

コメント

タイトルとURLをコピーしました