エクセルマクロで、チェックボックスを複数連動するVBAコードをご紹介します。
1つのチェックボックスにチェックを入れると、
他の複数のチェックボックスに自動でチェックが入るように設定します。
このページのマクロコードは、コピペで使えます。
ぜひ、お試しください。
チェックボックスを複数連動(パターン1)
以下のマクロを実行すると、チェックボックスを一括で連動するように設定します。
Private Sub Worksheet_Calculate()
Dim i As Long
'セルC1が true だったら
If Cells(1, 3) = True Then
For i = 4 To 12
Cells(i, 3) = True
Next i
'セルC1が true ではなかったら
Else
For i = 4 To 12
Cells(i, 3) = False
Next i
End If
End Sub
マクロ実行後
親となるチェックボックスをONにすると、子であるチェックボックスがONになります。
また、親となるチェックボックスをOFFにすると、子であるチェックボックスがOFFになります。
[Private Sub Worksheet_Calculate()] イベントを使用しているため、
ちょっとした裏ワザ設定が必要です。
シート内に計算式を入力してください。簡単なものでも大丈夫です。
私は下図のように、セルE1に、「=C1」という計算式を入力しました。
VBE エディタ
チェックボックスの連動設定をしたいシートに、イベントマクロを設定します。
チェックボックスを複数連動(パターン2)
以下のマクロを実行すると、チェックボックスを一気に連動するように設定します。
Private Sub Worksheet_Calculate()
Dim i As Long
Dim J As Long
'セルB1が true だったら
If Cells(1, 2) = True Then
For J = 2 To 4
For i = 5 To 8
Cells(i, J) = True
Next i
Next J
'セルB1が true ではなかったら
Else
For J = 2 To 4
For i = 5 To 8
Cells(i, J) = False
Next i
Next J
End If
End Sub
マクロ実行後
表形式に配置しているチェックボックスを一括連動させます。
あらかじめ「リンクするセル」を、チェックボックスを配置しているセルに設定しています。
セルに表示される「TRUE」「FALSE」の文字は、
条件付き書式で ”白文字” に設定すると見た目がスッキリします。
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】チェックボックス処理を自動化する使用例をみる
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説