Excel VBA シート上でダブルクリックしたときに処理をする-BeforeDoubleClick

Excel VBAでシート上でダブルクリックしたときに、自動で処理を実行する記録です。

シート上でダブルクリックしたときに処理を実行するには「BeforeDoubleClick」イベントを使います。

下図はExcel2016です。

ExcelVBA新シート

 

< スポンサーリンク >

 

構文

Worksheetオブジェクト.BeforeDoubleClick(Target, Cancel)

規定のダブルクリックの操作の前に、ワークシートをダブルクリックしたときに発生します。

Target=必須。ダブルクリックしたときにマウスポインターに最も近いセルが渡されます。
Cancel=イベントが発生するとFalseが渡されます。イベントプロシージャでこの引数をTrueに設定すると、プロシージャが終了しても規定のダブルクリックの操作は実行されません。

 

サンプル1:ダブルクリック時に該当のセル番地をメッセージで表示

ダブルクリックしたときに該当のセル番地をメッセージで表示してみます。

VBEを開き、該当のシートを選択しておきます。

ExcelVBA新シート

 

左側のオブジェクトボックスで「Worksheet」を選択し、右側のプロシージャボックスで「BeforeDoubleClick」を選択します。

ExcelVBA新シート

 

「Private Sub Worksheet_SelectionChange(ByVal Target As Range)」の部分は不要なので消します。

ExcelVBA新シート

 

下記のように書き込みます。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    MsgBox Target.Address
End Sub

ExcelVBA新シート

 

G6セルをダブルクリックしてみます。

ExcelVBA新シート

 

セル番地がメッセージで表示され、該当のセルが編集中になりました。

ExcelVBA新シート

ExcelVBA新シート

 

サンプル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

ExcelVBA新シート

ExcelVBA新シート

 

< スポンサーリンク >



サブコンテンツ

このページの先頭へ