Excel VBAでシート上でダブルクリックしたときに、自動で処理を実行する記録です。
シート上でダブルクリックしたときに処理を実行するには「BeforeDoubleClick」イベントを使います。
下図はExcel2016です。
< スポンサーリンク >
構文
Worksheetオブジェクト.BeforeDoubleClick(Target, Cancel)
規定のダブルクリックの操作の前に、ワークシートをダブルクリックしたときに発生します。
Target=必須。ダブルクリックしたときにマウスポインターに最も近いセルが渡されます。
Cancel=イベントが発生するとFalseが渡されます。イベントプロシージャでこの引数をTrueに設定すると、プロシージャが終了しても規定のダブルクリックの操作は実行されません。
サンプル1:ダブルクリック時に該当のセル番地をメッセージで表示
ダブルクリックしたときに該当のセル番地をメッセージで表示してみます。
VBEを開き、該当のシートを選択しておきます。
左側のオブジェクトボックスで「Worksheet」を選択し、右側のプロシージャボックスで「BeforeDoubleClick」を選択します。
「Private Sub Worksheet_SelectionChange(ByVal Target As Range)」の部分は不要なので消します。
下記のように書き込みます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox Target.Address
End Sub
G6セルをダブルクリックしてみます。
セル番地がメッセージで表示され、該当のセルが編集中になりました。
サンプル2:ダブルクリック時に特定のセルだったら編集状態にしない
ダブルクリックしたときに、A1のセルだったら編集状態にしないようにしてみます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = “$A$1” Then
Cancel = True
End If
End Sub
こんな記事も書いています