- 公開日:
- 更新日:
エクセルのチェックボックスでリンクするセルを設定する
エクセルのチェックボックスでリンクするセルを設定する方法をご紹介します。
チェックボックスとセルをリンクすることで、チェックを入れれば「TRUE」、チェックを外せば「FALSE」とセルに表示されるようになります。
通常、リンクするセルは1つずつ設定する必要がありますが、本記事で紹介するVBAコードを使用すれば、リンクするセルを一括で設定できるようになります。
エクセルの開発タブを表示する
チェックボックスにリンクするセルを設定したり、VBAを使用するには、初期設定では表示されていない「開発」タブを表示する必要があります。
エクセルのリボンに開発タブを表示させる方法については、以下の記事「開発タブを表示する」セクションを参考にしてください。
チェックボックスを作成する手順も一緒に説明しています。
エクセルのチェックボックスでリンクするセルを設定する方法
エクセルで、チェックボックスにリンクするセルを設定する方法をご紹介します。
チェックボックスの上で右クリックをし、コントロールの書式設定を選択します。
「コントロールの書式設定」ダイアログボックスが表示されます。コントロールタブを選択し、「リンクするセル」の上矢印ボタンを押します。
リンクするセル(例:A3)を選択します。コントロールの書式設定ダイアログボックスに「$A$3」と表示されますので、下矢印ボタンを押して確定します。
OKボタンを押します。
これでリンクするセルを設定することができました。チェックボックスにチェックを入れると、リンクしたセル(例:A3)に「TRUE」と表示されます。
チェックボックスのチェックを外すと、リンクしたセル(例:A3)に「FALSE」と表示されます。
VBAを使ってリンクするセルを一括で設定する
チェックボックスにリンクするセルは1つずつ設定する必要があり、コピー&ペーストやオートフィルなどで一括設定することはできません。
大量のチェックボックスにリンクするセルを設定したい場合は、エクセルのVBAを使ってみましょう。
VBAというと何やら難しそうな響きですが、実際の操作はとても簡単です。
VBAを使ってリンクするセルを一括で設定する方法は、以下の通りです。
開発タブ、Visual Basicの順に選択します。
「Microsoft Visual Basic for Application」が起動します。
挿入タブ、標準モジュールの順に選択します。
以下のコードをコピーして、モジュールに貼り付けます。
Sub 一括リンク()
Dim CheckBox As CheckBox
For Each CheckBox In ActiveSheet.CheckBoxes
CheckBox.LinkedCell = CheckBox.TopLeftCell.Offset(0, -1).Address
Next CheckBox
End Sub
このコードは「チェックボックスの左側にあるセルを、リンクするセルとして設定する」というものです。
「Offset(0, -1)」の括弧内を違う値にすることで、リンクするセルを変更できます。
右側のセルをリンクするセルに設定したいときは、Offset(0, 1)のように変更します。
ファイルタブ、上書き保存の順に選択します。
「Microsoft Excel」ダイアログボックスが表示されます。
VBAを実行するにはマクロ有効ブックとして上書き保存する必要があるため、いいえボタンを押します。
「名前を付けて保存」ダイアログボックスが表示されます。
保存先(例:ダウンロード)、ファイルの種類、Excel マクロ有効ブック(*.xlsm)の順に選択します。
保存ボタンを押します。
エクセルの編集画面に戻り、開発タブ、マクロの順に選択します。
「マクロ」ダイアログボックスが表示されます。
先ほど作成したマクロ(例:一括リンク)を選択し、実行ボタンを押します。
これで、チェックボックスの左側にリンクするセルを一括で設定することができました。
試しにチェックを付けたり外したりしてみましょう。
画像のように、リンクしたセルに「TRUE」や「FALSE」と表示されれば設定完了です。