教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでシートがダブルクリックされた時に処理を実行する方法

構文

構文は以下の通りです。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ' ダブルクリック時に実行したいコードをここに書きます
End Sub

解説

Worksheet_BeforeDoubleClickは、シートがダブルクリックされたときに実行されるイベントです。Targetは、ダブルクリックされたセル範囲を表します。Cancelは、ダブルクリック時の動作をキャンセルするためのフラグです。Trueに設定すると動作をキャンセルできます。

プログラミング例

具体的なプログラミング例を紹介します。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ' A1セルがダブルクリックされた場合にメッセージを表示する
    If Target.Address = "$A$1" Then
        MsgBox "A1セルがダブルクリックされました"
        Cancel = True ' 編集モードをキャンセル
    End If
End Sub

上記のプログラムは、A1セルがダブルクリックされたときにメッセージボックスを表示し、セルの編集モードをキャンセルします。

まとめ

Worksheet_BeforeDoubleClickイベントを使うと、シートがダブルクリックされた際の処理を簡単に実装できます。Targetを使って、どのセルがダブルクリックされたかを確認し、必要な処理を実行します。CancelをTrueに設定することで、Excelの通常の動作をキャンセルすることが可能です。