【エクセル2016】チェックボックスを挿入して一括で連動させる方法

エクセルでチェックボックスを一個ずつ入れるのが面倒くさい。チェックボックスをコピペしても連動元になるリンクセルは設定し直さなきゃいけないので大きな効率化にはならない。チェックボックスを挿入して、リンクセルの設定をするところまで自動で行う方法はあるのかな?
こういった疑問にお答えします。
自動でチェックボックスを入力して、リンクセルの設定まで行うためにはズバリ、マクロを使います。
ソースコードを載せているので、モジュールにコピペしてもらえればすぐに使えます。
この記事ではマクロに詳しくない方でも安心して使えるように、マクロの導入方法も解説していきます。そんなに難しい作業じゃないので、空いた時間にでもサラッと実装してみましょう。
まずはソースコードをご紹介します。マクロを使ったことがある方は、標準モジュールにコードをコピペして、[開発]タブー[マクロ]から[チェックボックス生成]をクリックして実行してください。
Sub チェックボックス生成()
Dim i As Long
Dim bufA As String
Dim bufB As String
Dim bufC As Long
Dim bufD As Long
bufA = Application.InputBox("チェックボックスを表示する列 (例)A", "入力1 / 4", Type:=2)
bufB = Application.InputBox("リンクするセル (例)B", "入力2 / 4", Type:=2)
bufC = Application.InputBox("入力を開始する行番号 (例)1", "入力3 / 4", Type:=1)
bufD = Application.InputBox("入力を終了する行番号 (例)10", "入力3 / 4", Type:=1)
For i = bufC To bufD
ActiveSheet.CheckBoxes.Add(442, 162, 27.5, 19).Select
With Selection
.Caption = ""
.Value = xlOn
.LinkedCell = CStr(bufB) & i
.Display3DShading = False
.Top = ActiveSheet.Range(CStr(bufA) & i).Top
.Left = ActiveSheet.Range(CStr(bufA) & i).Left
End With
Next
End Sub
ここからはマクロを使った事が無い方のために、やり方を図で分かりやすく解説していきます。
スポンサードサーチ
チェックボックス生成マクロの作り方
まずは、マクロの作成の流れを確認しておきましょう。
作成の4ステップ
- [開発]タブを有効にする
- Visual Basicエディタを開く
- 標準モジュールにコードを貼りつける
- マクロを実行する
たったこれだけです。順番に解説していきます。
[開発]タブを有効にする
[開発]タブ(開発者用のツールセット)を有効にします。
エクセルの作業画面から[ファイル]タブをクリックし、左から[オプション]をクリックします。


表示されたダイアログボックスの左から[リボンのユーザ設定]をクリックします。

右側にある、メインタブのグループの中の[開発]にチェックを入れて、[OK]をクリックします。
リボンメニューに[開発]タブが追加されるので、クリックします。

Visual Basicエディタを開く
コードを入力するために、エディタ(マクロの編集画面)を開きます。

エディタが起動したら、[挿入]タブー[標準モジュール]の順にクリックします。

標準モジュールが挿入されて、コードを貼りつける画面が表示されます。

標準モジュールにコードを貼りつける
標準モジュールにコードを貼りつけて、マクロを完成させます。
以下のコードをコピーします。
※記事の冒頭に載せたものと同じです
Sub チェックボックス生成()
Dim i As Long
Dim bufA As String
Dim bufB As String
Dim bufC As Long
Dim bufD As Long
bufA = Application.InputBox("チェックボックスを表示する列 (例)A", "入力1 / 4", Type:=2)
bufB = Application.InputBox("リンクするセル (例)B", "入力2 / 4", Type:=2)
bufC = Application.InputBox("入力を開始する行番号 (例)1", "入力3 / 4", Type:=1)
bufD = Application.InputBox("入力を終了する行番号 (例)10", "入力3 / 4", Type:=1)
For i = bufC To bufD
ActiveSheet.CheckBoxes.Add(442, 162, 27.5, 19).Select
With Selection
.Caption = ""
.Value = xlOn
.LinkedCell = CStr(bufB) & i
.Display3DShading = False
.Top = ActiveSheet.Range(CStr(bufA) & i).Top
.Left = ActiveSheet.Range(CStr(bufA) & i).Left
End With
Next
End Sub
エディタの画面に戻り、標準モジュールにコードを貼りつけます。

これでマクロは完成です。エクセルの作業画面に戻って、マクロを実行してみましょう。
マクロを実行する
最後にマクロの実行方法を解説します。
マクロを実行するには、エクセルの作業画面で[開発]タブー[マクロ]の順にクリックします。

[チェックボックス生成]という名前を選んで、[実行]をクリックするとマクロが実行されます。

チェックボックス生成マクロの使い方
このマクロは、4つのインプットボックスに任意の値を入力する事で、好きな位置にチェックボックスを連続で作成できます。
マクロを実行すると、一つ目のボックスが表示されます。任意の値を入力して[OK]をクリックすると、次のボックスが表示されるので、4項目すべて入力します。
開発者向けに作ったので、値をちゃんと入れないとエラーになります。例を参考にして、正しい値を入力してください。
| ①チェックボックスを表示する列 | 例)A |
| ②リンクするセルの列 | 例)B |
| ③最初のチェックボックスを挿入する行番号 | 例)1 |
| ④最後のチェックボックスを挿入する行番号 | 例)10 |
このマクロは数分で作成できますが、数十分の時間を短縮できることは間違いなしですので、ぜひ試してみてください。
今回は以上となります。