VBAのClearメソッドとは?セルのデータとフォーマットを一度にクリア!

clearメソッド VBA

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

お悩みポイント
悩む人
  • 全てのセルを一括で削除したい
  • 値のみ削除を行いたい

VBAを使ってExcelのセルを操作する際に、セルの内容やフォーマットをリセットしたい場合があります。
その場合は、Clearメソッドを使うと、セル内のデータや書式を簡単にクリアできます。

この記事では、Clearメソッドとその関連メソッドを紹介し、それぞれの使い方を丁寧に解説します。

初心者でもすぐに理解できるように、基本的な使い方から、実際の業務で役立つ応用例までカバーします。

ぜひご覧ください。


【 この記事の概要 】

  よく使う度    5.0  
  難しさ     2.0  
  覚えておくと安心度     5.0  

この記事でできるようになること

この記事を読むと、次のことができるようになります。

この記事を見てできるようになること

VBAのClearメソッドとは?

Clearメソッドは、Excel VBAでセルの内容とフォーマットを一度にクリアするためのメソッドです。

これにより、セル内のデータや書式をすべて削除し、完全にリセットされた状態に戻すことができます。

例えば、既存のデータを削除して新しいデータを入力する前に、セルをリセットしたい場合に便利です。

Clearメソッドで出来ること

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

設定解説
  • Range(“A1”)
    • Clearメソッドを適用する範囲の起点となるセル範囲を指定します。
      ここではRange(“A1”)を例にしていますが、Cells()やオブジェクト変数を使っても、同様の範囲指定を行うことも可能です。
  • Clear
    • 指定したセル範囲の内容をすべてクリアします。
      Clearメソッドを使用することで、セルのデータ、書式、コメント、ハイパーリンクなどを選択してクリアすることができます。
      Clearメソッドの一覧は、次項を参照ください。

Clearメソッドの一覧を紹介

以下の表では、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」に設定されているアウトラインが解除されます。
データ・フォーマットは変更されません。

Clearメソッドを使用する際の注意ポイント

Clearメソッドを使用する際には、いくつかの注意ポイントがあります。
これらを意識することで、予期せぬトラブルを避けることができます。

  • データの復元ができない
    • Clearメソッドを使用すると、セルのデータと書式が完全に削除されます。
      一度クリアされたデータは復元できません
      そのため、重要なデータをクリアする前に、バックアップを取るか、データが不要であることを確認してから実行することが大切です。
  • フォーマットのリセット
    • Clearメソッドは、セルのフォーマットもリセットします。
      これにより、セルの背景色、フォントサイズ、罫線などがデフォルトの状態に戻ります。
      フォーマットを保持したい場合は、ClearContentsメソッドを使用してください。
  • 行や列を削除したい場合
    • Clearメソッドはセルの内容やフォーマットをクリアするだけで、行や列自体は削除しません
      行や列そのものを削除したい場合は、Deleteメソッドを使用する必要があります。

Clearメソッドの使用例を紹介します

ここからは、Clearメソッドの具体的な使用例を紹介します。

使用例1: シート全体をクリアする

シート全体をクリアする方法を紹介します。

主な使用用途
シート全体をクリアして、内容とフォーマットを一度に削除し、シートをデフォルトの状態に戻したい場合に使用します。

Sub ClearSheet()
    Cells.Clear
End Sub
動作概要
  • STEP1
    シート全体のセル範囲を指定

    Cellsを使用して、シート全体のセル範囲を指定します。
    Cellsは、シート上のすべてのセルを対象とします。

  • STEP2
    シートをクリア

    Clearメソッドを使用して、指定されたセル範囲の内容とフォーマットをすべてクリアします。
    これにより、シートがデフォルトの状態に戻ります。

処理結果

このコードで使用している機能

  • なし

1行ずつ解説

コードの詳細
  1. Sub ClearSheet()
    • この行では、「ClearSheet」という新しいサブルーチン(処理のまとまり)を定義しています。
      この場合、「ClearSheet」を実行すると、指定されたタスクが実行されます。
  2. Cells.Clear
    • 「Cells」は、アクティブなシート上のすべてのセルを指します。
      「Clearメソッド」を使用して、このシートのすべてのセルの内容や書式をクリアします。
      これにより、シート上のデータ、フォーマット、数式、条件付き書式、コメントなどがすべて削除され、シートが初期状態に戻ります。
  3. End Sub
    • この行で、「Sub ClearSheet」のサブルーチンが終了することを示しています。
      この時点で、サブルーチンのすべての処理が完了します。

Excel VBAを使用してシート全体の内容とフォーマットを簡単にクリアするための非常に便利なサブルーチンです。
このコードを実行すると、アクティブシートのすべてのセルが初期化され、データ、フォーマット、数式などがすべて削除されます。

使用例2: 特定のセル範囲の、データのみをクリアする

特定のセル範囲内のデータをクリアし、フォーマットはそのままにする方法を紹介します。

主な使用用途
既存のセルの色や罫線などの書式設定を残しつつ、セル内の値や数式だけをリセットしたい場合に非常に便利です。
データを更新する際に、セルの見た目を維持したまま内容だけをクリアする際に活用できます。

Sub ClearDataOnly()
    Range("B2:F7").ClearContents
End Sub
動作概要
  • STEP1
    シート全体のセル範囲の指定範囲を指定

    Range(“B2:F7”): この行で操作対象のセル範囲を指定しています。
    この場合、範囲「B2」から「F7」までが対象となります。
    範囲はワークシート上の四角形領域を指定します。

  • STEP2
    セルの内容をクリア

    .ClearContents: 指定したセル範囲内のデータのみをクリアします。
    このメソッドは、セルの内容(テキストや数値、数式など)を削除しますが、セルのフォーマット(色、フォント、枠線など)はそのまま残ります。

処理結果

このコードで使用している機能

  • なし

1行ずつ解説

コードの詳細
  1. Sub ClearDataOnly()
    • この行で、新しいサブルーチン(マクロ)「ClearDataOnly」を定義しています。
      Subは「Subroutine(サブルーチン)」の略で、VBAで一連の処理をまとめたものを指します。
  2. Range(“B2:F7”).ClearContents
    • ここでは、「B2」から「F7」までのセル範囲を指定しています。
      ClearContentsメソッドは、セルの内容だけが削除され、指定したセル範囲内の「データのみ」をクリアします。
      ※セルの書式(フォント、色、罫線など)はそのまま残ります。
  3. End Sub
    • この行で、サブルーチンが終了することを示しています。
      これ以上の処理は行わず、ここで「ClearDataOnly」という一連の処理が終わります。

このコードは、Excelのシート内の「B2」から「F7」までの範囲にあるセルのデータだけをクリアします。
例えば、この範囲に数字や文字列が入力されていても、それらは削除されますが、セルの背景色や罫線、フォントのスタイルなどはそのまま残ります。
これは、データをリセットしたいが、見た目の設定はそのままにしたい場合に非常に便利です。

使用例3: 表の範囲を自動で取得し、データのみを削除する

CurrentRegionとOffset、Resizeを使って表のデータ部分のみを削除する方法を紹介します。
ヘッダー行はそのままにして、データ部分のみをクリアします。

主な使用用途
表全体の構造やフォーマットを維持しつつ、データ部分のみをクリアしたい場合に使用します。
特に、定期的にデータを更新する必要がある場合や、表のヘッダー行や書式設定を残したまま、データをリセットしたい場合に非常に便利です。

Sub ClearTableDataOnly()
    With Range("B2").CurrentRegion
        .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).ClearContents
    End With
End Sub
動作概要
  • STEP1
    表全体のセル範囲を指定

    この行で操作対象の表全体のセル範囲を指定しています。
    CurrentRegionプロパティを使用して、セル「B2」を基点とした連続したセル範囲(表全体)を動的に取得します。
    この場合、表のデータ部分とヘッダー行が含まれます。

  • STEP2
    データ部分のセル範囲を指定

    選択された表全体の範囲を基にして、ヘッダー行を除いたデータ部分のセル範囲を指定しています。

  • STEP3
    セルの内容をクリア

    指定されたセル範囲内のデータ部分のみをクリアします。
    このメソッドは、セルの内容(テキストや数値、数式など)を削除しますが、セルのフォーマット(色、フォント、枠線など)はそのまま残ります。

処理結果

このコードで使用している機能

1行ずつ解説

コードの詳細
  1. Sub ClearTableDataOnly()
    • この行で新しいサブルーチン(Subプロシージャ)を定義しています。
      「ClearTableDataOnly」という名前が付けられたこのサブルーチンは、指定されたセル範囲のデータ部分のみをクリアするための処理を行います。
  2. With Range(“B2”).CurrentRegion
    • 「Withステートメント」を使用して、セル「B2」を基点とした連続したセル範囲(CurrentRegion)に対して一連の操作を行います。
      「CurrentRegion」は、セル「B2」を含む連続したセル範囲全体を動的に取得します。
      この範囲には、ヘッダー行も含まれます。
  3. .Offset(1, 0).Resize(.Rows.Count – 1, .Columns.Count).ClearContents
    • .Offset(1, 0):
      • 取得したセル範囲を基点にして、1行下に移動します。
        これにより、ヘッダー行をスキップし、データ部分の最初の行が基準となります。
    • .Resize(.Rows.Count – 1, .Columns.Count):
      • セル範囲のサイズを変更します。
        行数は「Rows.Count – 1」でヘッダー行を除いたデータ部分を指定し、列数は元のまま(Columns.Count)にします。
        これにより、データ部分のみが選択されます。
      • .ClearContents:
        • 選択された範囲内のデータをクリアします。
          「ClearContentsメソッド」は、セルの内容(テキスト、数値、数式など)を削除しますが、セルのフォーマット(色、フォント、枠線など)はそのまま残ります。
  4. End With
    • 「Withステートメント」が終了し、指定されたセル範囲に対する操作が完了します。
  5. End Sub
    • サブルーチンの終了を示します。
      サブルーチン内のすべての処理が完了し、次のステップに進みます。

このコードは、表のデータ部分のみをクリアし、ヘッダー行やフォーマットはそのままにしておく場合に役立ちます。
特に、表の構造を保持したままデータを更新するシナリオにおいて、効率的にデータ部分のみをリセットすることができます。
「CurrentRegion」「Offset」「Resize」といったプロパティを組み合わせて使うことで、柔軟かつ動的に範囲を操作できるため、さまざまな表の構造に対応可能です。

まとめ

Clearメソッドとその関連メソッドを使うことで、Excelのセルを効率的にリセット・クリアすることができます。

各メソッドの特性を理解することで、必要な操作を適切に選択し、効率的に作業を進めることが可能になります。

ポイントのおさらい

さらに学ぶために

Excel VBAのClearメソッドとその関連メソッドの基本を学んだ後は、他のVBAの機能についても理解を深めることで、より高度な操作が可能になります。

Clearメソッド以外にも、Excel VBAで役立つテクニックがたくさんあります。
以下のリンクから、他の記事やガイドラインを参照し、さらなる知識を得ることができます。

タイトルとURLをコピーしました