教えて!ExcelVBA!

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

【ExcelVBA シート操作】シートがダブルクリックされた時に発生するイベントプロシージャを作成するにはどうすればいいの?教えて!

構文

構文は以下の通りです。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ' 実行したいコードをここに記述する
End Sub

解説

Worksheet_BeforeDoubleClickイベントプロシージャは、セルがダブルクリックされたときに実行されるコードを記述するために使用されます。引数は以下の内容となります。

引数 内容
Target ダブルクリックされたセルや範囲を表します。この引数を使用することで、ダブルクリックされたセルや範囲に対して操作を行うことができます。
Cancel ダブルクリックイベントのキャンセルを制御します。初期値はFalseです。この引数を使用することで、ダブルクリックによるセルの編集をキャンセルしたり、イベントプロシージャの実行を制御したりすることができます。

プログラミング例

以下に、具体的なプログラミング例を示します。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
        Dim studentName As String
        studentName = Target.Value
        ' 成績詳細の表示処理
        MsgBox "生徒名 & "の成績詳細を表示します。"
        ' 成績詳細表示のための処理を記述する
        ' 例えば、詳細情報を別のシートに表示する、ダイアログボックスで表示するなど
        ' ダブルクリックイベントのキャンセル
        Cancel = True
    End If
End Sub

この例では、A2からA100の範囲内のセルがダブルクリックされた場合に、ダブルクリックされた生徒の名前を取得し、成績詳細を表示する処理が行われます。具体的な成績詳細の表示処理は省略していますが、その部分には生徒の成績情報を表示するための処理を記述することができます。また、最後の行の`Cancel = True`は、ダブルクリックイベントをキャンセルするためのコードです。これにより、ダブルクリックによるセルの編集を無効化し、イベントプロシージャが実行されるだけであることを示しています。

まとめ

Worksheet_BeforeDoubleClickイベントプロシージャを使用することで、セルがダブルクリックされたときに自動的に処理を実行することができます。是非活用してください。