プロが教えるわが家の防犯対策術!

エクセルのVBAでダブルクリックでチェックを入れた後、もう一度ダブルクリックでセルの色を黄色にしてもう一度ダブルクリックでチェックを消してセルの色も消したいのですが、3つめのcaseの書き方が分かりません。どのように書けばよいでしょうか。
よろしくご教示ください。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("A1:AZ1000")) Is Nothing Then Exit Sub
With Target
Select Case .Value

Case ""
.Value = ChrW(&H2713)

Case ChrW(&H2713)
.Interior.Color = RGB(255, 255, 0)

Case .Value = ChrW(&H2713)
.Value = ""


End Select
End With
End Sub

A 回答 (1件)

こんばんは



>3つめのcaseの書き方が分かりません。
ご提示のCase文はセル値で分岐していますので、セル値だけの判断ではご質問の内容は実現できないと思われます。
実現するには、セルの色の判断が必要になります。
値がチェックマークの際に、セルの色を判断するようにすれば宜しいでしょう。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("A1:AZ1000")) Is Nothing Then Exit Sub
With Target
Select Case .Value

Case ""
.Value = ChrW(&H2713)

Case ChrW(&H2713)
If .Interior.Color = RGB(255, 255, 0) Then
.Interior.Color = xlNone
.Value = ""
Else
.Interior.Color = RGB(255, 255, 0)
End If
End Select
End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます!
希望通りの結果がえられました!

お礼日時:2022/10/27 20:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!