「VBAでセルのデータをクリアしたいけど、どうすればいいんだろう…」
そんな疑問を持っていませんか?

・全てのセルを一括で削除したい
・値のみ削除を行いたい



その場合は、VBAの「Clearメソッド」を
使用すると解決します!
この記事では、VBAの「Clearメソッド」を使って、セル内のデータや書式を簡単にクリアする方法を詳しく解説します。
このメソッドを使えば、セルの値のみやシート全体のデータを一括でクリアできます。
初心者でもすぐに理解できるように、基本的な使い方から、実際の業務で役立つ応用例までカバーします。
ぜひご覧ください。
【 この記事の概要 】
よく使う度 | |
難しさ | |
覚えておくと安心度 |
この記事でできるようになること
この記事を読むと、次のことができるようになります。
- VBAでのClearメソッドの基本的な使い方を学ぶ
- Clearメソッドの種類を確認する
- Clearメソッドや関連メソッドを使用する際の注意ポイントを把握する
- Clearメソッドを実際にどのように使用するのかを確認する
VBAでセルをクリアする方法:Clearメソッドの基本を解説
VBAのClearメソッドは、セルの内容とフォーマットを一度にクリアするためのメソッドです。
これにより、セル内のデータや書式をすべて削除し、完全にリセットされた状態に戻すことができます。
例えば、既存のデータを削除して新しいデータを入力する前に、セルをリセットしたい場合に便利です。


VBAのClearメソッドの基本構文


- Range(“A1”)
- Clearメソッドを適用する範囲の起点となるセル範囲を指定します。
ここではRange(“A1”)を例にしていますが、Cells()やオブジェクト変数を使っても、同様の範囲指定を行うことも可能です。
- Clearメソッドを適用する範囲の起点となるセル範囲を指定します。
- Clear
- 指定したセル範囲の内容をすべてクリアします。
Clearメソッドを使用することで、セルのデータ、書式、コメント、ハイパーリンクなどを選択してクリアすることができます。
Clearメソッドの一覧は、事項「Clearメソッド」の一覧を参照ください。
- 指定したセル範囲の内容をすべてクリアします。
より詳しい情報は、Range.Clear メソッド (Excel)を参照してみてください。
Clearメソッド一覧と使い分け:用途に合わせたVBAのクリア方法をご紹介
以下の表では、VBAのClearメソッドとその関連メソッドの一覧を示しています。
メソッド名 | 説明 |
---|---|
Clear | セルの内容とフォーマットを、すべてクリアします。 |
ClearContents | セルのデータのみをクリアし、フォーマットはそのままにします。 |
ClearFormats | セルのフォーマットのみをクリアし、データはそのままにします。 |
ClearNotes | セル内のコメントやメモをクリアします。 |
ClearHyperlinks | セルに設定されたハイパーリンクをクリアしますが、 内容やフォーマットはそのままにします。 |
ClearOutline | セルに設定されたアウトライン(グループ化)をクリアします。 |


Clearメソッドの解説 (セルの内容・書式をクリア)
Clearメソッドは、セルの内容と書式を一度にクリアします。
これは、セルを完全にリセットしたいときに非常に便利です。
Range("B2:F7").Clear
この例では、セル「B2」から「F7」までの範囲をクリアします。
すべての内容とフォーマットが削除され、セルはデフォルトの状態に戻ります。
※行や列の幅は変更されたままとなります。


ClearContentsメソッド (セルのデータをクリア)
ClearContentsメソッドは、セルのデータのみをクリアし、フォーマットはそのままにします。
これは、セルの内容をクリアしたいが、書式は保持したい場合に役立ちます。
Range("B2:F7").ClearContents
この例では、セル「B2」から「F7」までのデータをクリアしますが、フォーマットはそのまま残ります。
データだけをクリアしたいときに使います。


ClearFormatsメソッド (セルのフォーマットをクリア)
ClearFormatsメソッドは、セルのフォーマットのみをクリアし、データはそのままにします。
これは、データの内容を保持しつつ、書式をリセットしたいときに使用します。
Range("B2:F7").ClearFormats
この例では、セル「B2」から「F7」までのフォーマットをクリアし、データはそのままにしておきます。
書式設定をリセットして、デフォルトの見た目に戻したい場合に便利です。


ClearNotesメソッド (セルのメモ・コメントをクリア)
ClearNotesメソッドは、セル内のメモやコメントをクリアします。
データやフォーマットには影響を与えず、注釈だけを削除したい場合に便利です。
Range("B2:F7").ClearNotes
この例では、セル「B2」から「F7」までの範囲にあるすべてのコメントやメモをクリアします。
データとフォーマットはそのまま残ります。


ClearHyperlinksメソッド (セルのハイパーリンクをクリア)
ClearHyperlinksメソッドは、セルに設定されたハイパーリンクをクリアします。
内容やフォーマットはそのままにして、リンクだけを削除したい場合に使います。
Range("B2:F7").ClearHyperlinks
この例では、セル「B2」から「F7」までの範囲にあるハイパーリンクをクリアします。
リンクをリセットする場合に便利です。
しかし、青文字と下線はそのまま残ります。
元の状態に戻す場合は、個別でフォントを変更する必要があります。


ClearOutlineメソッド (セルのアウトラインをクリア)
ClearOutlineメソッドは、指定されたセル範囲に設定されたアウトライン(グループ化や階層構造)1を解除するために使用します。
このメソッドを使うと、グループ化された状態が解除され、元の行や列の配置に戻りますが、セルの内容や書式はそのまま保持されます。
※アウトラインとは、Excelで行や列をグループ化して折りたたんだり展開したりできる機能です。 ↩︎
Range("B2:F7").ClearOutline
このコードを実行すると、セル「B2」から「F7」に設定されているアウトラインが解除されます。
データ・フォーマットは変更されません。


よく使われるセル範囲の指定方法
セルをクリアする際には、どの範囲を対象にするかを指定することが重要です。
VBAでは、さまざまな方法でセル範囲を選択できます。
ここでは、よく使われる範囲指定方法として、「Range」、「CurrentRegion」、「Cells」を紹介します。
Rangeで特定のセルや範囲のみのデータをクリアする
Rangeプロパティは、VBAで特定のセルや範囲のみのデータを指定する基本的な方法です。
個別のセルや連続した範囲を指定する際に便利です。
特定のセル範囲を対象にクリア操作を行いたい場合に、「Range」と「ClearContents」を組み合わせることで、セルの値のみを削除できます。
【使用例】Rangeで特定のセル範囲の値のみをクリア
Range("B2:D5").ClearContents
この例では、Rangeプロパティを使って「B2」から「D5」までのセル範囲を指定し、ClearContentsメソッドで値のみをクリアします。
セルの書式やフォーマットはそのまま残り、内容だけをリセットしたいときに役立ちます。
CurrentRegionでデータ範囲を自動選択する
「CurrentRegion」プロパティは、指定したセルを基準に周囲の連続したセル範囲を自動的に選択します。
表データなどの範囲をクリアする際に非常に便利です。
Rangeと組み合わせて使うことで、データ範囲を効率的に操作できます。
【使用例】CurrentRegionで表データをクリア
Range("A1").CurrentRegion.ClearContents
このコードでは、セル「A1」を起点として、その周囲の連続したセル範囲(表データ)をRangeとCurrentRegionで自動選択し、ClearContentsメソッドで値のみをクリアしています。
書式やフォーマットはそのまま残るため、セルのデータのみをリセットしたいときに使えます。
Cellsでシート全体のセルをクリアする
「Cells」プロパティは、シート上のすべてのセルを対象に操作する際に使用します。
シート全体をクリアする場合に、CellsとRangeを組み合わせて柔軟な範囲指定が可能です。
【使用例】シート全体の値のみをクリア
Cells.ClearContents
このコードでは、「Cells」プロパティを使ってシート全体のセルを選択し、ClearContentsメソッドで値のみをクリアします。
シート内のデータを一括で削除し、書式やフォーマットはそのままにしておきたい場合に役立ちます。
VBAでシート全体や範囲をクリアする際の注意ポイント
VBAのClearメソッドを使用する際には、いくつかの注意ポイントがあります。
これらを意識することで、予期せぬトラブルを避けることができます。
- データの復元ができない
- Clearメソッドを使用すると、セルのデータと書式が完全に削除されます。
一度クリアされたデータは復元できません。
そのため、重要なデータをクリアする前に、バックアップを取るか、データが不要であることを確認してから実行することが大切です。
- Clearメソッドを使用すると、セルのデータと書式が完全に削除されます。
- フォーマットのリセット
- Clearメソッドは、セルのフォーマットもリセットします。
これにより、セルの背景色、フォントサイズ、罫線などがデフォルトの状態に戻ります。
フォーマットを保持したい場合は、ClearContentsメソッドを使用してください。
- Clearメソッドは、セルのフォーマットもリセットします。
- 行や列を削除したい場合
- Clearメソッドはセルの内容やフォーマットをクリアするだけで、行や列自体は削除しません。
行や列そのものを削除したい場合は、Deleteメソッドを使用する必要があります。
- Clearメソッドはセルの内容やフォーマットをクリアするだけで、行や列自体は削除しません。
VBAのClearメソッドの使用例をご紹介
ここからは、VBAのClearメソッドの具体的な使用例を紹介します。
以下に紹介する使用例は、すべてコピペしてすぐに実行できるコードです。
気になる例は、ぜひご覧いただき、実際に実行してみてください。
VBAの基礎から応用までを効率よくしっかり学習したい方には、UdemyのVBA講座もおすすめです。
特に自己学習で進める場合、ビデオや実践例があると理解が進みやすくなります。


\ 自分のペースで学べるVBA講座はこちら /
使用例1: シート全体のセルをクリアする
シート全体のセルをクリアする方法を紹介します。
この操作は、シート全体をクリアして内容とフォーマットを一度に削除し、シートをデフォルトの状態に戻したい場合に使用します。
主な使用用途
シート全体のデータやフォーマットを一括削除して、初期状態に戻したいときに便利です。
【コード例】シート全体のセルをクリア
Sub ClearSheet()<br> Cells.Clear<br>End Sub
処理結果


コードの動作概要
Cellsを使用して、シート全体のセル範囲を指定します。
Cellsは、シート上のすべてのセルを対象とします。
Clearメソッドを使用して、指定されたセル範囲の内容とフォーマットをすべてクリアします。
これにより、シートがデフォルトの状態に戻ります。
このコードで使用している機能
- なし
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub ClearSheet()
- この行では、「ClearSheet」という新しいサブルーチン(処理のまとまり)を定義しています。
この場合、「ClearSheet」を実行すると、シート全体をクリアする処理が行われます。
- この行では、「ClearSheet」という新しいサブルーチン(処理のまとまり)を定義しています。
- Cells.Clear
- 「Cells」は、アクティブなシート上のすべてのセルを指します。
「Clearメソッド」を使用することで、シートのデータ、フォーマット、数式、条件付き書式、コメントなどがすべて削除されます。 - 補足:「セルの値のみ」をクリアする場合は、Cells.ClearContentsメソッドを使います。これにより、書式や条件付き書式はそのままにしてデータだけを削除することが可能です。
- 「Cells」は、アクティブなシート上のすべてのセルを指します。
- End Sub
- この行で、「Sub ClearSheet」のサブルーチンが終了することを示しています。
この時点で、サブルーチンのすべての処理が完了します。
- この行で、「Sub ClearSheet」のサブルーチンが終了することを示しています。
Excel VBAを使用してシート全体の内容とフォーマットを簡単にクリアするための非常に便利なサブルーチンです。
このコードを実行すると、アクティブシートのすべてのセルが初期化され、データ、フォーマット、数式などがすべてクリアされます。
使用例2: 特定のセル範囲の、値のみをクリアする
特定のセル範囲内の値をクリアし、フォーマットはそのままにする方法を紹介します。
RangeとClearContentsメソッドを組み合わせることで、値のみを削除し、セルの見た目を維持したままリセットできます。
主な使用用途
既存のセルの色や罫線などの書式設定を残しつつ、セル内の値や数式だけをクリアしたい場合に便利です。
データを更新する際、セルの見た目を維持したまま内容だけをクリアする際に活用できます。
【コード例】特定のセル範囲の値のみをクリア
Sub ClearDataOnly()<br> Range("B2:F7").ClearContents<br>End Sub
処理結果


コードの動作概要
Range(“B2:F7”): この行で操作対象のセル範囲を指定しています。
この場合、範囲「B2」から「F7」までが対象となります。
.ClearContents: 指定したセル範囲内の値のみをクリアします。
このメソッドは、セルの内容(テキストや数値、数式など)を削除しますが、セルの書式(色、フォント、枠線など)はそのままにしておけます。
このコードで使用している機能
- なし
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub ClearDataOnly()
- この行で、新しいサブルーチン(マクロ)「ClearDataOnly」を定義しています。
このサブルーチンを実行すると、指定されたセル範囲の値のみをクリアします。
- この行で、新しいサブルーチン(マクロ)「ClearDataOnly」を定義しています。
- Range(“B2:F7”).ClearContents
- ここでは、「B2」から「F7」までのセル範囲を指定しています。
ClearContentsメソッドは、指定したセル範囲の値のみをクリアします。
セルの書式(フォント、色、罫線など)はそのまま残ります。
この操作により、データをリセットしつつ、見た目の設定を維持できます。
- ここでは、「B2」から「F7」までのセル範囲を指定しています。
- End Sub
- この行で、サブルーチンが終了することを示しています。
これ以上の処理は行わず、ここで「ClearDataOnly」という一連の処理が終わります。
- この行で、サブルーチンが終了することを示しています。
このコードは、Excelのシート内の「B2」から「F7」までの範囲にあるセルの値だけをクリアします。
例えば、この範囲に数字や文字列が入力されていても、それらはクリアされますが、セルの背景色や罫線、フォントのスタイルなどはそのまま残ります。
これは、値をリセットしたいが、見た目の設定はそのままにしたい場合に非常に便利です。
使用例3: 表の範囲を自動で取得し、値のみをクリアする
表の範囲を指定し、セルの値のみをクリアする方法を紹介します。
CurrentRegion、Offset、Resizeを使うことで、ヘッダー行を除いたデータ部分を効率的に選択し、値のみを削除することが可能です。
この方法を使えば、セルの書式や構造はそのままにし、内容だけをリセットできます。
主な使用用途
表全体の構造やフォーマットを維持しつつ、データ部分の値のみをクリアしたい場合に便利です。
定期的にデータを更新する必要がある場合に、セルの見た目を保持しながら内容をリセットする際に役立ちます。
【コード例】表の範囲を指定して値のみをクリアする
Sub ClearTableDataOnly()<br> With Range("B2").CurrentRegion<br> .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).ClearContents<br> End With<br>End Sub
処理結果


コードの動作概要
この行で操作対象の表全体のセル範囲を指定しています。
CurrentRegionプロパティを使用して、セル「B2」を基点とした連続したセル範囲(表全体)を動的に取得します。
この場合、表の値部分とヘッダー行が含まれます。
選択された表全体の範囲を基にして、ヘッダー行を除いたデータ部分のセル範囲を指定しています。
指定されたセル範囲内の値のみをクリアします。
このメソッドは、セルの内容(テキストや数値、数式など)を削除し、セルの書式(色、フォント、枠線など)はそのまま残ります。
このコードで使用している機能
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub ClearTableDataOnly()
- この行で新しいサブルーチン(Subプロシージャ)を定義しています。
「ClearTableDataOnly」という名前が付けられたこのサブルーチンは、指定されたセル範囲の値部分のみをクリアするための処理を行います。
- この行で新しいサブルーチン(Subプロシージャ)を定義しています。
- With Range(“B2”).CurrentRegion
- 「Withステートメント」を使用して、セル「B2」を基点とした連続したセル範囲(CurrentRegion)に対して一連の操作を行います。
「CurrentRegion」は、セル「B2」を含む連続したセル範囲全体を動的に取得します。
この範囲には、ヘッダー行も含まれます。
- 「Withステートメント」を使用して、セル「B2」を基点とした連続したセル範囲(CurrentRegion)に対して一連の操作を行います。
- .Offset(1, 0).Resize(.Rows.Count – 1, .Columns.Count).ClearContents
- .Offset(1, 0:
- 取得したセル範囲を基点にして、1行下に移動します。
これにより、ヘッダー行をスキップし、値部分の最初の行が基準となります。
- 取得したセル範囲を基点にして、1行下に移動します。
- .Resize(.Rows.Count – 1, .Columns.Count):
- セル範囲のサイズを変更します。
行数は「Rows.Count – 1」でヘッダー行を除いた値部分を指定し、列数は元のまま(Columns.Count)にします。
これにより、データ部分のみが選択されます。 - .ClearContents:
- 選択された範囲内のデータをクリアします。
「ClearContentsメソッド」は、セルの内容(テキスト、数値、数式など)を削除しますが、セルの書式(色、フォント、枠線など)はそのまま残ります。
- 選択された範囲内のデータをクリアします。
- セル範囲のサイズを変更します。
- .Offset(1, 0:
- End With
- 「Withステートメント」が終了し、指定されたセル範囲に対する操作が完了します。
- End Sub
- サブルーチンの終了を示します。
サブルーチン内のすべての処理が完了し、次のステップに進みます。
- サブルーチンの終了を示します。
このコードは、表の値部分のみをクリアし、ヘッダー行やフォーマットはそのままにしておく場合に役立ちます。
特に、表の構造を保持したままデータを更新するシナリオにおいて、効率的に値部分のみをクリアすることができます。
「CurrentRegion」「Offset」「Resize」といったプロパティを組み合わせて使うことで、柔軟かつ動的に範囲を操作できるため、さまざまな表の構造に対応可能です。
この記事のまとめ
VBAのClearメソッドとその関連メソッドを使うことで、Excelのセルを効率的にリセット・クリアすることができます。
各メソッドの特性を理解することで、必要な操作を適切に選択し、効率的に作業を進めることが可能になります。
ポイントのおさらい
- Clearメソッドとは?
- 「Clearメソッド」とは、VBAでセルの内容と書式を一度にクリアするための便利な方法です。
Clearメソッドを使うことで、セル内のデータ、数式、コメント、ハイパーリンクなどを一括で削除し、セルをデフォルトの状態に戻せます。
⇒ 「VBAのClearメソッドとは?」をもう一度見る。
- 「Clearメソッド」とは、VBAでセルの内容と書式を一度にクリアするための便利な方法です。
- Clearメソッド一覧
- VBAには、さまざまなClearメソッドがあり、状況に応じて使い分けることができます。
特に、「セルの値のみをクリア」したい場合には、ClearContentsメソッドがよく使われます。
以下に主要なメソッドをまとめます。 - Clear
- セルの内容とフォーマットをすべてクリアします。
- ClearContents
- セルの値のみをクリアし、フォーマットはそのまま保持します。データだけをリセットしたい場合に便利です。
- ClearFormats
- セルのフォーマットのみをクリアし、データはそのまま残します。
- ClearNotes
- セル内のコメントやメモをクリアします。
- ClearHyperlinks
- セルに設定されたハイパーリンクをクリアしますが、内容とフォーマットはそのままにします。
- ClearOutline
- 指定されたセル範囲に設定されたアウトライン(グループ化や階層構造)を解除するために使用します。
⇒ 「Clearメソッドの一覧を紹介」をもう一度見る。
- 指定されたセル範囲に設定されたアウトライン(グループ化や階層構造)を解除するために使用します。
- VBAには、さまざまなClearメソッドがあり、状況に応じて使い分けることができます。
- Clearメソッドの注意ポイント
- VBAでセルをクリアする際に、いくつかの注意ポイントがあります。
特に、値のみをクリアする場合と、セル全体をクリアする場合の違いを理解しておくことが重要です。
⇒ 「Clearメソッドを使用する際の注意ポイント」もう一度見る。
- VBAでセルをクリアする際に、いくつかの注意ポイントがあります。
- Clearメソッドの使用例
- VBAでセルの値のみをクリアする、またはセルの範囲全体をクリアするために、どのメソッドを使うかは用途によります。
実際のコード例を確認することで、各メソッドの使い方を理解し、効率的に作業を進めましょう。
⇒ 「Clearメソッドの使用例を紹介します」もう一度見る。
- VBAでセルの値のみをクリアする、またはセルの範囲全体をクリアするために、どのメソッドを使うかは用途によります。
さらに学ぶために
Excel VBAのClearメソッドとその関連メソッドの基本を学んだ後は、他のVBAの機能についても理解を深めることで、より高度な操作が可能になります。
Clearメソッド以外にも、Excel VBAで役立つテクニックがたくさんあります。
以下のリンクから、他の記事やガイドラインを参照し、さらなる知識を得ることができます。

