Office Hack

Excelのチェックボックスを連動する方法

  • by yoshihiro
  • Release

Excelで特定のチェックボックスにチェックを入れると、他のチェックボックスに自動的にチェックが入る方法をご紹介します。複数の項目を一括でチェックしたい場合などに便利です。

チェックボックスを連動するにはマクロを使用しますが、詳しくない方でも使えるようにVBAのソースコードを載せています。コピペしてお使いください。

リンクするセルの設定

すべてを選択できるチェックボックスを設定

まずは図のような持ち物リストを準備します。

チェックボックスがチェックされているときは「TRUE」、チェックされていないときは「FALSE」と表示され、一番下に「すべて選択」をチェックすると全選択させる仕様です。この全選択機能を実現させるには、チェックボックス同士の連動が必要となります。

下記の記事を参考に表の準備をしてください。

マクロの登録

マクロの登録

B11セルに配置しているチェックボックスを右クリックし、表示された右クリックメニューから【マクロの登録】を選択します。

マクロの新規作成

「マクロの登録」ダイアログボックスが表示されるのでマクロ名として任意のものを入力します。今回は『All_Check』と入力しています。分かりやすい名前にしておきましょう。

マクロの名前を入力したら【新規作成】ボタンを押します。

VBAコードの記述

Visual Basic Editorの起動

新しいウィンドウとしてVBE(Visual Basic Editor)が起動します。

コードウィンドウに入力されている「Sub All_Check()」と「End Sub」の間に下記のソースコードを入力します。


Sub All_Check()
    If Cells(11, 3) = True Then
        Cells(2, 3) = True
        Cells(3, 3) = True
        Cells(4, 3) = True
        Cells(5, 3) = True
        Cells(6, 3) = True
        Cells(7, 3) = True
        Cells(8, 3) = True
        Cells(9, 3) = True
    ElseIf Cells(11, 3) = False Then
        Cells(2, 3) = False
        Cells(3, 3) = False
        Cells(4, 3) = False
        Cells(5, 3) = False
        Cells(6, 3) = False
        Cells(7, 3) = False
        Cells(8, 3) = False
        Cells(9, 3) = False
    End If
End Sub

VBAプログラムを記述

「Cells(11, 3)」というのは、C11セルを意味します。VBAでは1つのセルを指定する際、「Cells(行番号, 列番号)」という形式で記述します。

処理の流れとしてはC11セルが「True」の時は他のチェックボックスにリンクするセルを「True」に、反対にC11セルが「False」の時は他のチェックボックスにリンクするセルも「False」にします。

「If A Then X ElseIf B Then Y End If」という形式は、”もしAの場合はXを実行する、Bの場合はYを実行する”という意味になります。

VBAプログラムを保存する

コードを入力したらCtrl+Sを押してブックを保存します。

「名前を付けて保存」ダイアログボックスが表示されるので「ファイルの種類」から【Excel マクロ有効ブック】を選択して保存します。

複数のチェックボックスを一括でチェックする

持ち物リストが表示されているシートに戻ります。「すべて選択」右のチェックボックスを押すと、B2からB9までのセルのチェックボックスも一緒にチェックされた状態になりました。

個別でのチェックも可能

もう一度「すべて選択」右のチェックボックスを押すと、すべてのチェックボックスからチェックが外れます。個別にそれぞれチェックすることも可能です。

その他、様々なチェックボックスの編集方法