以前以下のような質問をさせていただきました。ダブルクリックで、○→赤塗りつぶしに黒○→空白 範囲A4:AH4,A7:AH7,A10:AH10 と変わるマクロを作成したいのですが、調べてもわかりません。 ご教授いただけないでしょうか? よろしくお願いいたします。補足補足です。 ○→セルを赤く塗りつぶした中に○(黒字)→空白 の順にしたいです。 よろしくお願いいたします。それに対して以下の返答をいただいたのですが、写真のようなエラーが出てしまいます。修正の方法がわかりません。ご教授頂きたいです。 Private SubWorksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)     With Target         If .Row = 4 Or .Row = 7 Or .Row = 10 Then             If .Interior.ColorIndex = xlNone Then                 If .Value = \u0026quot;\u0026quot; Then                     .Value = \u0026quot;○\u0026quot;                 ElseIf .Value = \u0026quot;○\u0026quot; Then                     .Interior.Color = vbRed                 Else                     .Value = \u0026quot;\u0026quot;                 End If             Else                 .Value = \u0026quot;\u0026quot;                 .Interior.ColorIndex = xlNone             End If             Cancel = True         End If     End With End Sub

1件の回答

回答を書く

1127192

2026-01-21 21:15

+ フォロー

質問文の

Private SubWorksheet

は添付図では

Private Sub Worksheet

と、スペースが入っているのでどうもそこではないみたいです。ここは不明ですが、



適用範囲が4,7,10の3行から4,6,8,10,12,14,16,18,20,22 の10行に変わったようなので

If .Row = 4 Or .Row = 7 Or .Row = 10 Then

という条件はまずいです。



次のように「行番号が奇数の時は何もしない」としてみてください。



Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Intersect(Target, Range(\u0026quot;D4:AH23\u0026quot;)) Is Nothing Then Exit Sub

If Target.Row Mod 2 = 1 Then Exit Sub



With Target

If .Interior.ColorIndex = xlNone Then

If .Value = \u0026quot;\u0026quot; Then

.Value = \u0026quot;○\u0026quot;

ElseIf .Value = \u0026quot;○\u0026quot; Then

.Interior.Color = vbRed

Else

.Value = \u0026quot;\u0026quot;

End If

Else

.Value = \u0026quot;\u0026quot;

.Interior.ColorIndex = xlNone

End If

Cancel = True

End With



End Sub

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有