excel

【Excel】エクセルのチェックボックスを一括でクリアする方法(外す・マクロ)

エクセルのチェックボックスを一括で外す基本操作 - オブジェクト選択による複数選択
当サイトでは記事内に広告を含みます

Excelでアンケート表、進捗管理表、点検表などを作成すると、チェックボックスのチェックをまとめて外したい場面があります。

1つずつクリックする方法では時間がかかり、チェック漏れも起こりやすいため、対象が多い表ほど一括クリアの方法が役立ちます。

フォームコントロールとActiveXコントロールでは扱い方が異なるため、まず種類を見分けたうえで、手作業、セル連動、VBAマクロを使い分けましょう。

少数なら選択してDeleteキー、セル連動なら連動セルを空白にする方法、繰り返し使うならVBAマクロが便利です。

この記事では、エクセルのチェックボックスを一括でクリアして外す方法を、Windows版Excelを前提に詳しく解説します。

 

エクセルのチェックボックスを一括で外す基本操作

それではまず、複数のチェックボックスをまとめて外す基本操作について解説していきます。

項目 確認 担当
見積書の確認 田中
納期の確認 佐藤
請求内容の確認 鈴木

 

オブジェクト選択による複数選択

フォームコントロールのチェックボックスは、セルではなく図形に近いオブジェクトとして配置されています。

そのため、セル範囲をドラッグしただけでは、チェック状態をまとめて変更できません。

ホームタブの検索と選択からオブジェクトの選択を使うと、シート上のチェックボックスを範囲選択できます。

エクセルのチェックボックスを一括で外す基本操作 - オブジェクト選択による複数選択

ホームタブの右側にある検索と選択を開き、オブジェクトの選択をクリックします。

その後、対象のチェックボックスを囲むようにドラッグすると、複数のオブジェクトに選択枠が表示されます。

選択後に右クリックしてコントロールの書式設定を開くと、各チェックボックスの値を未チェックへ変更できます。

ただし、この操作はチェック状態ではなくオブジェクトそのものを選択する手順です。

 

右クリックによるチェック解除

少数のチェックボックスだけを外す場合は、各チェックボックスを右クリックしてチェックを外す操作が分かりやすい方法です。

フォームコントロールでは、右クリックしてもチェックが切り替わらないため、誤操作を防ぎながら設定を確認できます。

通常の左クリックはチェックのオンオフ、右クリックは設定変更という役割の違いを押さえておきましょう。

エクセルのチェックボックスを一括で外す基本操作 - 右クリックによるチェック解除

右クリック後にコントロールの書式設定を選び、コントロールタブの値でオフを選択します。

OKを押すと、チェックマークが消えた状態で確定します。

複数件を毎月初期化するような表では、この方法だけでは手間が増えるため、後述する連動セルやマクロの利用が向いています。

 

選択グループの削除と注意点

チェックボックスを選択した状態でDeleteキーを押すと、チェックを外すのではなくチェックボックス自体が削除されます。

Deleteキーは初期化ではなくオブジェクト削除になる可能性があるため、操作前に目的を確認してください。

誤って削除した直後であれば、CtrlキーとZキーで元に戻せます。

【操作のポイント】チェックを消したいだけなら、削除ではなく値を未チェックへ変更します。

 

セル連動を使ったチェック状態の初期化

続いては、チェックボックスをセルへ連動させて一括で初期化する方法を確認していきます。

A列 B列 C列
作業名 チェックボックス 連動セル
データ入力 TRUE
内容確認 FALSE

 

リンクするセルの設定

フォームコントロールのチェックボックスは、リンクするセルを指定すると、オンのときTRUE、オフのときFALSEをセルへ返します。

チェックボックスを右クリックし、コントロールの書式設定からコントロールタブを開きます。

リンクするセルに、たとえばC2と入力してOKを押しましょう。

セル連動を使ったチェック状態の初期化 - リンクするセルの設定

以後はチェックボックスをクリックするたびに、C2にはTRUEまたはFALSEが表示されます。

見た目のチェックボックスと判定用セルを分けることで、集計式や条件付き書式にも利用しやすくなります。

連動セルは作業用の列に置き、列を非表示にすると、入力表の見た目を整えながらチェック状態を管理できます。

 

FALSEの入力による一括クリア

チェックボックスがC2からC20のセルへ連動している場合、C2からC20を選択してFALSEを入力し、CtrlキーとEnterキーで確定します。

すべての連動セルがFALSEになり、対応するチェックボックスも未チェックへ戻ります。

1行目に見出しがあるサンプル表では、2行目以降を対象にする点が重要です。

連動セルがC2からC20の場合、対象範囲を選択してFALSEと入力し、CtrlキーとEnterキーで一括入力します。

TRUEとFALSEはExcelの論理値であり、文字列として引用符付きで入力する必要はありません。

連動セルを空白にすると状態が不安定になる場合があるため、FALSEで統一すると安全です。

 

数式によるチェック済み件数の確認

連動セルを設定すると、チェック済みの件数も数式で簡単に把握できます。

=COUNTIF(C2:C20,TRUE)

この数式はC2からC20のうち、TRUEになっているセルだけを数えます。

COUNTIF関数の第1引数は判定する範囲、第2引数は数えたい条件です。

たとえばC2に数式を入力したあとではなく、集計用セルD2に入力すれば、作業リストと集計結果を分けて管理できます。

チェック状態を数値化しておくと、完了率や未確認件数の自動計算にも展開できます

【操作のポイント】セル連動は、一括解除と集計を両立したいチェックリストに適した設定です。

 

VBAマクロによるチェックボックスの一括クリア

続いては、ボタン一つでチェックボックスを外すVBAマクロについて確認していきます。

対象 開始時 マクロ実行後
フォームコントロール ☑ ☑ ☑ ☐ ☐ ☐
ActiveXコントロール ☑ ☑ ☑ ☐ ☐ ☐
チェックリスト.xlsm – Excel − □ ×
ファイル ホーム 挿入 ページ レイアウト 数式 データ 校閲 表示 開発
Visual Basicマクロデザイン モード➤ 開発タブを選択
名前ボックス A1  fx 
A B C
1 作業名 確認 連動値
2 データ入力 TRUE
3 内容確認 TRUE
マクロ実行で全て未チェックへ

 

フォームコントロール用のVBA

挿入タブのフォームコントロールから追加したチェックボックスには、CheckBoxesコレクションを使う方法が適しています。

AltキーとF11キーを押してVBEを開き、挿入から標準モジュールを選択します。

次のコードを貼り付けると、アクティブなシートにあるフォームコントロールのチェックボックスをすべて未チェックへ変更できます。

Sub フォームチェックを一括解除()
    Dim cb As CheckBox
    For Each cb In ActiveSheet.CheckBoxes
        cb.Value = xlOff
    Next cb
End Sub

cb.Value = xlOffがチェックを外す命令であり、For EachからNextまででシート上の全チェックボックスを順番に処理します。

対象を特定のシートに固定したい場合は、ActiveSheetをWorksheets(“点検表”)のように変更してください。

 

ActiveXコントロール用のVBA

開発タブの挿入からActiveXコントロールとして追加したチェックボックスは、フォームコントロール用のコードでは処理できません。

ActiveXではOLEObjectsを順番に確認し、CheckBoxだけの値をFalseへ設定します。

Sub ActiveXチェックを一括解除()
    Dim obj As OLEObject
    For Each obj In ActiveSheet.OLEObjects
        If TypeName(obj.Object) = "CheckBox" Then
            obj.Object.Value = False
        End If
    Next obj
End Sub

フォームコントロールとActiveXを混在させると、1本の単純なコードでは取りこぼすことがあります。

まずチェックボックスを右クリックし、コントロールの書式設定が出るならフォームコントロール、プロパティが出るならActiveXの可能性が高いと判断できます。

 

マクロ実行ボタンと保存形式

作成したマクロは、開発タブのマクロから実行できます。

頻繁に初期化する表では、シート上の図形にマクロを登録して、クリックで実行できるようにすると便利です。

図形を挿入して一括クリアと入力し、右クリックからマクロの登録を選び、作成したプロシージャを指定します。

マクロを含むファイルは、Excelマクロ有効ブックの形式で保存する必要があります。

拡張子がxlsxのまま保存するとVBAコードが失われるため、保存時にxlsmを選択してください。

【操作のポイント】一括クリア用マクロは、信頼できるファイルだけで使い、保存形式もxlsmにします。

 

チェックボックスの種類別の見分け方

続いては、フォームコントロールとActiveXコントロールの違いを確認していきます。

種類 主な設定画面 一括解除
フォームコントロール コントロールの書式設定 CheckBoxes
ActiveX プロパティ OLEObjects

 

フォームコントロールの特徴

フォームコントロールは古くからある基本的な部品で、環境差の影響を受けにくく、チェックリスト作成に向いています。

セルへのリンク設定が分かりやすく、チェック済みの集計にも使いやすい点がメリットです。

通常の業務用チェックリストではフォームコントロールが扱いやすい選択です。

 

ActiveXコントロールの特徴

ActiveXコントロールは、フォント、色、イベント処理などを細かく設定できます。

クリック時に別の処理を動かすような高度なVBAを組む場合に役立ちます。

一方で、Excelのバージョンやセキュリティ設定の影響を受けることがあるため、配布用ブックでは動作確認が必要です。

 

混在しているシートの対処

既存ファイルを引き継いだ場合、複数の種類のチェックボックスが混在していることがあります。

この場合は、フォームコントロール用とActiveX用のマクロを両方用意するか、チェックボックスの種類を統一します。

種類を統一してから連動セルと一括クリアの仕組みを整えると、将来の修正や担当者交代にも対応しやすくなります。

【操作のポイント】右クリック時のメニューを確認してから、対応する解除方法を選びます。

 

一括クリアで起こりやすいトラブルと対処

続いては、チェックが外れないときに確認したい原因と対処を見ていきます。

症状 確認する内容
マクロで変わらない コントロールの種類と対象シート
実行できない マクロ有効化とxlsm保存

 

デザインモードが有効な場合

ActiveXコントロールでは、開発タブのデザインモードがオンになっていると、通常のクリックでチェック状態を変更できません。

デザインモードのボタンをもう一度クリックしてオフにしてから、チェックボックスの動きを確認します。

編集用のデザインモードと利用時の通常モードを切り替えることが大切です。

 

保護されたシートの確認

シートが保護されていると、コントロールの編集やマクロによる変更が制限されることがあります。

校閲タブからシート保護の解除を確認し、必要な権限がある状態で操作してください。

パスワードが設定されているブックでは、管理者の許可なく保護を解除しないよう注意しましょう。

 

対象範囲を限定するマクロ

同じシート内に残したいチェックボックスがある場合は、すべてを一括解除するコードではなく、位置で対象を限定します。

Sub 指定範囲だけ解除()
    Dim cb As CheckBox
    For Each cb In ActiveSheet.CheckBoxes
        If Not Intersect(cb.TopLeftCell, Range("B2:B20")) Is Nothing Then
            cb.Value = xlOff
        End If
    Next cb
End Sub

この例では、左上セルがB2からB20にあるチェックボックスだけを対象にします。

【操作のポイント】残すチェックボックスがある表では、実行前に対象セル範囲を明確にします。

 

まとめ エクセルのチェックボックスを外す一括クリア方法

エクセルのチェックボックスを一括でクリアするには、チェックボックスの種類と利用目的に合わせた方法を選ぶことが重要です。

少数のチェックを外すだけなら手動操作でも対応できますが、定期的に初期化するチェックリストでは、セル連動やVBAマクロが有効です。

フォームコントロールはCheckBoxes、ActiveXコントロールはOLEObjectsを使うという違いを押さえると、コードのエラーを防げます。

連動セルをFALSEへ戻す方法は、マクロを使えない共有ブックでも実践しやすく、チェック済み件数の集計にも活用できます。

VBAを使う場合は、ファイルをxlsm形式で保存し、削除ではなく未チェックへの変更を行うコードか確認しましょう。

安全で再現しやすい一括クリアの仕組みを作り、毎回の確認作業を効率化してください。