Excelで申請書、日報、見積書、在庫表などを作成すると、前回入力した文字や数値をまとめて消して次のデータを入力したい場面があります。
セルを一つずつ選択してDeleteキーを押す方法でも削除できますが、入力欄が多い表では時間がかかり、数式や見出しまで消してしまう心配もあります。
そこで便利なのが、VBAマクロを登録したクリアボタンです。
ボタンを一度クリックするだけで、指定範囲の入力データ、チェックボックス、プルダウンの選択内容などを初期状態へ戻せます。
この記事で扱うポイントです。
・入力セルだけを消すClearContentsの基本
・図形ボタンにマクロを登録する設定
・フォームコントロールのチェックボックスを一括解除する処理
・数式、罫線、見出しを残したまま入力内容だけを削除する考え方
サンプルでは、1行目にヘッダーがあり、2行目以降に利用者が入力する一覧表を想定します。
それでは、Excelで安全にクリアボタンを作る手順を確認していきましょう。
エクセルでクリアボタンを作る方法【入力範囲だけを一括削除】
| A | B | C | D |
|---|---|---|---|
| 受付日 | 氏名 | 数量 | 確認 |
| 2026/10/11 | 山田 | 3 | 済 |
| 入力欄 | 入力欄 | 入力欄 | 入力欄 |
それではまず、見出しや計算式を残しながら入力データだけを消す基本の仕組みについて解説していきます。
クリア対象のセル範囲
最初に決めるべきなのは、どのセルを消してよいかという範囲です。
たとえばA1からD1がヘッダーで、A2からD20が入力エリアなら、削除対象はA2:D20だけに限定します。
このように範囲を明示すれば、表題、列見出し、印刷設定用の文字、計算用の固定セルを誤って消しにくくなります。
入力用シートでは、利用者が記入するセルを淡い黄色などで塗りつぶしておくと、マクロで消える場所と残る場所を視覚的にも把握しやすくなります。

複数の離れた範囲をクリアしたい場合は、後で紹介するVBAでRangeを複数指定できます。
入力欄が連続している帳票では、A2:D20のように長方形で指定すると管理が簡単です。
一方で、住所欄、備考欄、チェック欄が離れている申請書では、それぞれの範囲を個別に記述する方法が向いています。
ClearContentsで内容だけを消す設定
セルの文字、数値、日付を消す処理には、ClearContentsを使います。
ClearContentsはセルの内容だけを削除し、罫線、背景色、表示形式、列幅は残すため、入力フォームの初期化に適しています。
Deleteキーでセルを削除する操作とは異なり、表の構造をずらさずに再利用できる点が大きな利点です。

Sub 入力データをクリア()
Worksheets("入力フォーム").Range("A2:D20").ClearContents
End Sub
上記の入力フォームはシート名なので、実際のブックにあるシート名へ書き換えます。
RangeのA2:D20も、作成した表の入力セルに合わせて変更しましょう。
シート名に空白や日本語が含まれていても、ダブルクォーテーションで囲まれていれば指定できます。
クリア前の確認メッセージ
クリアボタンは便利な反面、誤クリックで入力途中の内容を消す可能性があります。
そのため、実務用のファイルでは削除前に確認メッセージを表示する構成がおすすめです。
ユーザーがキャンセルを選んだときは何も削除せず、はいを選んだときだけ処理を続けます。
Sub 入力データをクリア()
If MsgBox("入力内容をクリアしますか", vbYesNo + vbQuestion) = vbYes Then
Worksheets("入力フォーム").Range("A2:D20").ClearContents
End If
End Sub
MsgBoxの結果を判定することで、意図しない一括削除を防げます。
保存済みのデータを消す前には、必要に応じて別名保存する運用も大切です。
【操作のポイント】最初はコピーしたテスト用ブックでマクロを実行し、指定範囲以外が消えないことを確認してから本番ファイルへ導入しましょう。
VBAマクロの登録と図形ボタンの配置
| 操作順 | Excel上の操作 | 目的 |
|---|---|---|
| 1 | AltキーとF11キー | VBA画面を開く |
| 2 | 標準モジュールを挿入 | マクロを保存する |
| 3 | 図形へマクロ登録 | クリック操作を可能にする |
続いては、作成したVBAをブックへ登録し、利用者が押しやすいクリアボタンへ割り当てる流れを確認していきます。
標準モジュールへのコード入力
VBAエディターは、Excel画面でAltキーとF11キーを同時に押すと開けます。
左側のプロジェクトエクスプローラーで対象ブックを選択し、挿入から標準モジュールを選びます。
表示された白いコード画面に、先ほどのSubからEnd Subまでを貼り付けます。
標準モジュールに記載したPublicなマクロは、図形やボタンへ割り当てやすいという特徴があります。

シートモジュールへ書く方法もありますが、初めて作る場合は標準モジュールにまとめると探しやすくなります。
VBAコードを保存するブックは、通常のxlsx形式では保存できません。
ファイルの種類でExcelマクロ有効ブックを選び、拡張子をxlsmにして保存してください。
図形へマクロを登録する手順
Excelシートへ戻り、挿入タブから図形を選びます。
角丸四角形などを入力表の近くへ配置し、図形内に「入力をクリア」と入力すると、分かりやすい操作ボタンになります。
図形を右クリックし、マクロの登録を選ぶと、一覧に入力データをクリアというマクロ名が表示されます。

そのマクロを選択してOKを押せば、図形をクリックしたときに処理が動きます。
ボタンの文字は「リセット」だけでは内容が伝わりにくいことがあります。
入力をクリア、入力内容を削除、次の受付を開始のように、実行結果が分かる言葉にすると誤操作の抑止につながります。
マクロ有効ブックとしての保存
VBAを記述した後で通常のExcelブック形式を選んで保存すると、マクロを保存できないという警告が出ることがあります。
この場合は、名前を付けて保存の画面でExcelマクロ有効ブックを選択します。
ファイル名の末尾がxlsmになっていることを確認してください。
再度開いた際には、ファイルの取得元やExcelのセキュリティ設定によってマクロ警告が出る場合があります。
信頼できる社内ファイルや自分で作成したファイルであることを確認した上で、コンテンツの有効化を実行しましょう。
【操作のポイント】ボタンを登録した後は、図形をクリックして確認メッセージが出るか、キャンセルを押した場合に入力値が残るかまで試験します。
チェックボックス一括クリアのマクロ設定
| 項目 | 入力状態 | クリア後 |
|---|---|---|
| 確認済み | ☑ | ☐ |
| 連絡済み | ☑ | ☐ |
| 承認済み | ☐ | ☐ |
続いては、フォームコントロールで配置したチェックボックスをまとめて解除するVBAを確認していきます。
フォームコントロールのチェックボックス
Excelには、開発タブから配置できるフォームコントロールのチェックボックスがあります。
このチェックボックスは、アンケート、作業確認表、完了管理表などで使いやすい部品です。
セルにチェック記号を入力する方法とは異なり、クリックでオンとオフを切り替えられます。
ただし、セル範囲へClearContentsを実行しても、図形として配置されたチェックボックスは消えません。
そこで、CheckBoxesコレクションを使い、各チェックボックスの値をオフへ変更します。
フォームコントロールのチェックボックスと、ActiveXコントロールのチェックボックスはVBAの記述方法が異なります。
ここで紹介するCheckBoxesは、開発タブの挿入からフォームコントロールを選んで作成した場合に対応します。
一括解除コードの記述
入力セルのクリアとチェックボックスの解除を一つのマクロにまとめると、ボタン一回でフォーム全体を初期化できます。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 氏名 | 確認 | 承認 | |
| 2 | 山田 | ☑ | ☑ | 入力をクリア |
Sub 入力内容とチェックをクリア()
Dim チェック項目 As CheckBox
If MsgBox("入力内容とチェックをクリアしますか", vbYesNo + vbQuestion) = vbNo Then Exit Sub
With Worksheets("入力フォーム")
.Range("A2:D20").ClearContents
For Each チェック項目 In .CheckBoxes
チェック項目.Value = xlOff
Next チェック項目
End With
End Sub
For EachからNextまでの部分は、入力フォームシート上にあるチェックボックスを順番に取得する繰り返し処理です。
各チェック項目のValueへxlOffを代入することで、チェック済み、未チェック、グレー表示の状態を未チェックの状態へ統一できます。
セルの内容を消すRangeと、図形部品を初期化するCheckBoxesは役割が別なので、両方を記述することが重要です。
リンク先セルを使う場合の初期化
チェックボックスには、右クリックからコントロールの書式設定を開き、リンクするセルを指定できます。
たとえばB2にリンクすると、チェック時はTRUE、未チェック時はFALSEがB2へ表示されます。
リンク先セルを集計式で利用している場合、チェックボックスの解除だけでなく、関連セルの表示や式への影響も確認しましょう。
リンク先セルを入力範囲に含めてClearContentsすると、チェックボックスの状態とセルの値が一時的にずれることがあります。
フォーム部品を操作するマクロとリンク先セルの削除範囲は、設計時に分けて考えるとトラブルを避けやすくなります。
【操作のポイント】チェックボックスだけを消したい場合はRangeのClearContentsを外し、For EachからNextまでの処理だけをボタンへ登録します。
数式や書式を残す入力フォームの設計
| セル | 役割 | クリア対象 |
|---|---|---|
| A2 | 商品名の入力 | 対象 |
| B2 | 単価の入力 | 対象 |
| C2 | 数量の入力 | 対象 |
| D2 | 金額の計算式 | 対象外 |
続いては、入力データを消しても自動計算の数式や罫線を残せるフォーム設計について確認していきます。
入力セルと計算セルの分離
見積書や注文表では、単価と数量を入力し、金額を数式で算出するケースが多くあります。
たとえばD2には、単価がB2、数量がC2の場合に次の式を設定します。
=B2*C2
この数式は、B2またはC2へ数値を入れると金額を自動計算します。
入力をクリアするマクロでA2:D20までを指定すると、D列の数式まで削除され、次回入力時に金額が計算されなくなります。
そこで、商品名、単価、数量だけを対象にし、計算列は除外する設計が必要です。
Worksheets("入力フォーム").Range("A2:C20").ClearContents
数式が入る列をクリア範囲から外すだけでも、簡潔で安全な入力フォームになります。
数式を最終行まで自動反映する方法
入力行が多い表では、D2の数式をD20までコピーしておくと便利です。
先頭セルのD2へ=B2*C2を入力し、セル右下のフィルハンドルを下へドラッグすれば、行番号を調整した数式が各行へコピーされます。
オートフィル後のD3には=B3*C3、D4には=B4*C4というように式が変化します。
数式のコピー元はD2だけで構いません。
先頭セルに正しい数式を設定してからオートフィルを使うと、各行の参照先を手入力する必要がありません。
空白行では金額欄を空白表示にしたい場合、IF関数を使う方法もあります。
=IF(OR(B2=””,C2=””),””,B2*C2)
この式ではB2またはC2が空欄なら空白を返し、両方の入力があるときだけ掛け算の結果を表示します。
入力の初期化後に0が並ぶ見た目を避けたい場合に役立つ数式です。
プルダウンと入力規則の維持
入力フォームで品名や担当者を選択式にしている場合、データの入力規則を設定していることがあります。
ClearContentsはセルの値のみを消すため、プルダウンの候補リストや入力メッセージは通常そのまま残ります。
これは、初期化後も同じフォームを繰り返し使いたい帳票に適した動作です。
ただしClearではなくClearAllを使うと、入力規則、書式、コメントなども削除される可能性があります。
帳票の再利用が目的ならClearContentsを優先するという考え方が基本です。
【操作のポイント】黄色の入力セル、白色の計算セル、緑色の実行ボタンのように役割ごとに色分けすると、利用者にも保守担当者にも分かりやすいシートになります。
複数範囲と複数シートをクリアする応用
| 対象 | 指定例 | 用途 |
|---|---|---|
| 連続範囲 | A2:C20 | 一覧表 |
| 離れた範囲 | B3,B8,E12 | 申請書 |
| 別シート | 受付、明細 | 複数フォーム |
続いては、離れた入力欄や複数シートをまとめて初期化する応用例を確認していきます。
離れた入力セルをまとめて消す方法
申請書形式のシートでは、氏名がB3、住所がB8、備考がE12のように入力欄が離れていることがあります。
この場合は、Rangeの中でセル番地をカンマで区切って指定できます。
Worksheets("申請書").Range("B3,B8,E12").ClearContents
連続範囲と単一セルを混在させることもできます。
たとえばB3:D3、B8、E12:E15のような指定なら、フォームに合わせて必要なセルだけを選べます。
入力欄を無理に一つの大きな範囲へ含めないことが、固定ラベルや計算セルを守るコツです。
複数シートを初期化する処理
受付シートと明細シートの両方に入力欄があるブックでは、一つのボタンから複数のシートを処理できます。
Sub 複数シートをクリア()
If MsgBox("すべての入力内容をクリアしますか", vbYesNo + vbQuestion) = vbNo Then Exit Sub
Worksheets("受付").Range("B2:D10").ClearContents
Worksheets("明細").Range("A2:C30").ClearContents
End Sub
シート名を一行ずつ明記すると、どのシートのどの範囲が対象なのかを後から確認しやすくなります。
別シートのボタンから処理を起動する場合でも、Worksheetsで対象を明示すれば正しく操作できます。
複数シートの一括クリアは便利ですが、削除範囲が広がるほど確認の重要性も高まります。
確認メッセージには、受付と明細を初期化するなど、影響範囲が分かる文章を入れましょう。
テーブル機能を使った最終行の判定
入力件数が毎回変わる一覧表では、固定の20行ではなく、入力済みの最終行までを対象にしたい場合があります。
Excelのテーブル機能を利用している場合は、テーブルのデータ部分を指定する方法もあります。
ただし、テーブル内に数式列があると、データ部分をまとめてClearContentsした際に数式まで消える可能性があります。
そのため、入力列と計算列を分けたテーブル設計、または列単位のクリア範囲指定が必要です。
可変行の処理ほど、空欄、数式、見出しを含めない検証を丁寧に行いましょう。
【操作のポイント】応用マクロを作成したら、入力が1行だけの場合、最大行まで入力した場合、途中に空白行がある場合をそれぞれ試すと安心です。
マクロ実行時の安全対策とトラブル対応
| 症状 | 主な確認箇所 |
|---|---|
| ボタンを押しても動かない | マクロ登録、xlsm保存、コンテンツ有効化 |
| 数式まで消えた | Rangeの範囲指定 |
| チェックが残る | フォームコントロールの種類 |
続いては、クリアボタンを安心して使うための安全対策と、よくある不具合への対処を確認していきます。
マクロが実行できない場合
ボタンをクリックしても何も起こらない場合は、最初にファイル形式を確認します。
拡張子がxlsxならVBAは保存されないため、xlsm形式で保存し直します。
次に、図形を右クリックしてマクロの登録を開き、意図したマクロ名が選ばれているか確認してください。
開いたときに黄色や赤色のセキュリティ通知が表示されている場合は、信頼できるファイルであることを確認した上でマクロを有効にします。
出所が不明なメール添付ファイルやダウンロードファイルのマクロは有効化しないことが安全の基本です。
誤削除からデータを守る運用
マクロで削除した直後であれば、Excelの元に戻す機能で復元できることがあります。
ただし、VBAで実行した処理は通常の手入力操作と同じようには元に戻せない場合があるため、Undoに依存しない運用が重要です。
重要な入力データを扱うブックでは、削除前にバックアップシートへ値をコピーする処理を追加する方法もあります。
クリアボタンを押す前に、ファイルを保存する。
月次や案件ごとにファイルを複製して保管する。
確認メッセージを表示し、削除対象を明示する。
このような小さな対策でも、作業ミスによるデータ損失を減らせます。
保護されたシートでの注意点
入力フォームを保護している場合、マクロによるClearContentsがエラーになることがあります。
シート保護の設定内容によっては、利用者が編集できないだけでなく、マクロも対象セルを変更できません。
保護を解除して処理するコードを作る場合は、パスワードの管理やファイル配布時の取り扱いに注意が必要です。
まずは、入力セルだけをロック解除し、シート保護時にも利用者が入力できる状態へ設計する方法を検討しましょう。
安全性と使いやすさの両方を考えたフォーム設計が、長く使えるExcelファイルにつながります。
【操作のポイント】本番用のボタンは赤色よりも緑色や青色にし、削除処理であることを文字で明示すると、危険な操作だと必要以上に感じさせず注意も促せます。
まとめ エクセルで入力データを一括削除するクリアボタンの作り方
Excelのクリアボタンは、入力範囲を指定したClearContentsと、図形へ登録したVBAマクロを組み合わせることで作成できます。
もっとも基本的な処理は、入力欄だけをRangeで指定し、内容だけを削除する方法です。
ClearContentsなら罫線、背景色、表示形式、プルダウン設定を残しやすいため、繰り返し使う入力フォームに向いています。
フォームコントロールのチェックボックスも初期化したい場合は、CheckBoxesを繰り返し処理し、ValueをxlOffへ変更します。
数式列がある表では、計算セルをクリア対象から外し、先頭セルの数式をオートフィルで各行へ反映しておくと便利です。
また、確認メッセージ、xlsm形式での保存、テスト用ファイルでの動作確認を取り入れることで、誤削除やマクロが動かないトラブルを減らせます。
入力する人が迷わず使え、数式や帳票の形を壊さずに初期化できるクリアボタンを作り、日々のExcel作業を効率化していきましょう。