やること
チェックボックスに関するメモ。
事前メモ
【Excel新機能】チェックボックスに面倒な操作はもういらない! [挿入]タブから追加 - いまさら聞けないExcelの使い方講座 - 窓の杜
今井 孝 2024年7月10日 06:55
エクセルで“チェックボックス”を活用するといえば、[開発]タブを表示して[チェックボックス]をワークシートに配置、続けてリンクするセルを設定と、少し難易度の高いテクニックでした。
しかし、今後は複雑な操作は必要なし。新しいチェックボックスの機能が登場しました。6月27日にマイクロソフトから公式発表されており、7月末にはすべてのユーザーが利用できるとのことです。
Microsoft Supportのリンクも参考までに記載。
Excel でのチェック ボックスの使用 | Microsoft Support
過去は「チェックボックス」=「面倒」で、☑などの文字を使用する案も多かった。
エクセルのチェックボックス機能は非効率。プルダウンで代用すべき3つの理由と作り方を解説
今回は、以下3つに関するメモ。
- フォームコントロール
- ActiveX コントロール
- セル内チェックボックス
事前確認:Qiitaでの記事
ということで、以下の検索をしたところ、45件ヒットした。(2026/06/20時点)
「EXCEL チェックボックス ActiveX」の検索結果 - Qiita
また、以下の検索をしたところ、95件ヒットした。(2026/06/20時点)
「EXCEL フォームコントロールのチェックボックス」の検索結果 - Qiita
この中から、気まぐれに以下紹介。
動かないとき
「変数が定義されていません」というエラーの対処 #Excel - Qiita
最終更新日 2025年05月26日 投稿日 2025年05月23日
Excel VBA:ボタンのプロパティを確認するコード集 #VBAメモ - Qiita
投稿日 2025年10月15日
Excel VBA チェックボックスがリンク切れでOnにならない場合のリンク先セルアドレスを消去するマクロ #Excel - Qiita
最終更新日 2022年02月12日 投稿日 2021年12月17日
Tips
[VBA]コマンドボタンのカラーを変更する #VBA備忘録 - Qiita
最終更新日 2024年11月25日 投稿日 2024年10月29日
【ExcelVBA】ユーザーフォームの部品をループ文で(動的に)に作る時のノウハウ #Excel - Qiita
最終更新日 2022年11月25日 投稿日 2022年11月25日
代替え案
Excel checkbox optionbutton 重いチェックボックス対策 超軽量チェックボックス #マクロ - Qiita
最終更新日 2020年06月02日 投稿日 2020年05月31日
簡易メモ
メニューで、ActiveX コントロールのチェックボックスが出ない場合、上記で紹介しているサイトでも記載されているが、「ActiveX の設定」を確認。
- ファイル → オプション
- トラストセンター → トラストセンターの設定
- ActiveX 設定:すべての Office アプリケーションに適用する ActiveX の設定
「○ 警告を表示せずにすべてのコントロールを無効にする(D)」が選択されていないこと
※ 自分の環境は、気づかないうちに「無効」になっていた

VBAでの取り扱いを簡単にまとめる。
| 種類 | 参考資料 | VBAでの判定方法 | メモ |
|---|---|---|---|
| フォームコントロー | LINK | .CheckBoxes("名前").Value | チェックなし:-4146 |
| ActiveX コントロール | LINK | CheckBox1.Value | 環境依存あり |
| セル内チェックボックス | LINK | セルの値 | Excel 365の新機能 |
VBAでの取り扱いの違いは以下参照。
Sub test()
' フォームコントロールのチェックボックス
If Worksheets("Sheet1").CheckBoxes("Check Box 2").Value = 1 Then
MsgBox "チェックされている", , "フォームコントロール"
Else
MsgBox "チェックされていない", , "フォームコントロール"
End If
' ActiveX コントロールのチェックボックス
If Sheet1.CheckBox2.Value = True Then
MsgBox "チェックされている", , "ActiveX"
Else
MsgBox "チェックされていない", , "ActiveX"
End If
' セル内チェックボックス
If Worksheets("Sheet1").Range("B7").Value = True Then
MsgBox "チェックされている", , "セル内チェックボックス"
Else
MsgBox "チェックされていない", , "セル内チェックボックス"
End If
End Sub


