エクセルのVBAについて、詳しい方ご教示お願いいたします。Excelで、テェックボックスが多すぎてファイルサイズがおいきくなり、重たくなったので打開策を探していたところ、マクロを使うと言うやり方を見つけました。見よう見真似で、以下のコードを入力し、できました。セル上でダブルクリックすると✅が入るコードです。ただ、一つのシート内で複数列で実行することができず困っています。G列では✅出来るのですが、E列でも入力できるようにしたいです。どなた様がお力添えお願いいたします。Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range(\u0026quot;G5:G99999\u0026quot;)) Is Nothing Then Exit Sub Cancel = True Dim Cell As RangeFor Each Cell In Target.CellsIf Cell.Value = \u0026quot;P\u0026quot; ThenCell.ClearContentsElse Cell.Value = \u0026quot;P\u0026quot; End IfNextEnd Sub

Excel

1件の回答

回答を書く

1250073

2026-05-14 20:45

+ フォロー

過大解釈での例示です。違っているようなら、ごめんなさいm(__)m



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

''対象外範囲の場合は処理しない。

If Target.CountLarge \u0026gt; 1 Then Exit Sub

If Application.Intersect(Target, Range(\u0026quot;E:G\u0026quot;)) Is Nothing Then Exit Sub

If Cells(Target.Row, \u0026quot;B\u0026quot;).MergeCells \u0026lt;\u0026gt; True Then Exit Sub



''チェックセルに「レ」を設定する。既にある場合はクリアする。

Cancel = True

With Cells(Cells(Target.Row, \u0026quot;B\u0026quot;).MergeArea(3).Row, \u0026quot;G\u0026quot;)

If .Value = \u0026quot;\u0026quot; Then

.Value = ChrW(\u0026amp;H2713)

Else

.ClearContents

End If

End With

End Sub



※別の方がいわれていますが、チェックボックスでブック容量が過大になるのは変な気がします。なにかはわかりませんが、残骸が残っているような気がしますm(__)m

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

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有