【Excel(VBA)】マクロで複数のダブルクリックイベントを1つのシートに持たせる方法

2019-03-08 23:14:06 3074

はじめに

エクセルでマクロがしがし書いていると、ダブルクリックでチェックマーク付けたりしたくなる。
そこで、いろんなエリアでそんな機能をつけたくなるんだけど、
巷に紹介されているダブルクリックイベントを複数書くと、機能しなくなる。

結論

ダブルクリックイベントを複数もたせる

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("範囲1")) Is Nothing Then
If Target.Value = "" Then
Target.Value = "○" '範囲1は○をつける
Else
Target.Value = ""
End If
Target.Offset(1, 0).Select
ElseIf Not Application.Intersect(Target, Range("範囲2")) Is Nothing Then
If Target.Value = "" Then
Target.Value = "×" '範囲2は×をつける
Else
Target.Value = ""
End If
Target.Offset(1, 0).Select
End If
End Sub

解説


基本的にIf Not~を繰り返すことで、複数の範囲に対してダブルクリックイベントを適用することができる。
ダブルクリックされた場所がどこに当たるのかを判定しているだけ。

関連記事