ExcelVBA ダブルクリック イベントを取得して自動処理を実行させる方法

 

Excel VBA セルをダブルクリックしたときに自動的に処理を実行させる。これを使うと、特定セルに対してダブルクリックで特定アクションを行えます。具体的な使い方や、注意点やサンプルコードを紹介します。

 

Excel VBAで効率化の準備をしてみませんか?2025年をよりスムーズに過ごすための資格
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

 

Excel VBA ダブルクリック イベントの利用

以下のようなシーンで利用されます。

1.セル編集の代わりにアクションを実行
ダブルクリックでデータを入力したり、特定の操作(例えば、他のシートへのジャンプや計算結果の表示など)を自動化する。

2.フォームやメッセージの表示
特定のセルをダブルクリックすると、フォームを開いたり、ポップアップメッセージを表示する。

3.セルの内容を条件に応じて操作
例えば、ダブルクリックでセルの背景色を変更したり、他のセルに値をコピーする。

使い方

ダブルクリック イベントは、シートモジュール内にコードを記述します。BeforeDoubleClick イベントを利用することで、セルがダブルクリックされた時点で特定の処理を実行します。

 

ポイント

1.標準モジュールではなく、シートモジュールに記述
ダブルクリック イベントは特定のシートに依存するため、シートのコードモジュールに記述する必要があります。

2.セルの編集が無効化される
ダブルクリックで処理を実行すると、セルの編集が通常通りに行えなくなります(処理が優先されるため)。セルの編集も行いたい場合は、処理後にセル編集を有効にする必要があります。

3.範囲指定に注意
すべてのセルに対してダブルクリックの処理を適用すると、意図しない動作が起こる可能性があるので、範囲を限定するのが一般的です。

 

Excel VBA ダブルクリック イベントのサンプルコード

2025年の目標は繰り返し作業に悩まされない年にしませんか? Excel VBAを活用した効率化がその第一歩
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

特定のセルをダブルクリックでメッセージを表示

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ' A1セルをダブルクリックしたときにメッセージを表示
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        MsgBox "A1セルがダブルクリックされました!"
        Cancel = True  ' セルの編集を無効にする
    End If
End Sub

特定のセル範囲をダブルクリックで背景色を変更

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ' A1:A10のセルをダブルクリックした場合に背景色を変更
    If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
        Target.Interior.Color = RGB(255, 255, 0)  ' 背景色を黄色に変更
        Cancel = True  ' セルの編集を無効にする
    End If
End Sub

1.シートのコードモジュールを開く
VBAエディタで該当するシートのコードモジュールを開きます。

2.BeforeDoubleClickイベントを使う
シートモジュール内で Worksheet_BeforeDoubleClick を設定し、処理内容を記述します。

3.ダブルクリックでアクションが実行される
ダブルクリックされたときに、自動的に指定の処理が行われます。

ExcelVBAのダブルクリック イベントは、ユーザーがセルをダブルクリックしたときに特定の処理を自動化できる便利な機能です。特定のセルに対するアクションや、データ入力を簡素化する場面で活用できます。シートの編集動作を管理するため、操作範囲をしっかりと指定しておくことが重要です。

Excel VBAで自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。