はじめに
エクセルでマクロがしがし書いていると、ダブルクリックでチェックマーク付けたりしたくなる。そこで、いろんなエリアでそんな機能をつけたくなるんだけど、
巷に紹介されているダブルクリックイベントを複数書くと、機能しなくなる。
結論
ダブルクリックイベントを複数もたせる
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~を繰り返すことで、複数の範囲に対してダブルクリックイベントを適用することができる。
ダブルクリックされた場所がどこに当たるのかを判定しているだけ。