スポンサーリンク

【VBA】Excelテーブルの書式のみをリセットする方法(ClearFormats)

Excelのテーブル(ListObject)は、データ管理に便利ですが、色や罫線、セルの塗りつぶしなどの書式設定が増えていくと「一度書式だけをリセットしたい」と思う場面があります。
そんなときに役立つのが、ClearFormats メソッドです。この記事では、データはそのまま残しつつ、書式だけをリセットする方法をVBAを使って解説します。


スポンサーリンク

1. ClearFormatsとは?

ClearFormats メソッドは、セルに設定された書式(フォントの色、背景色、罫線、条件付き書式など)をリセットするために使用します。
ただし注意点として、セルの値や数式は削除されず、そのまま残ります

つまり、見た目をリセットしてデータだけ残したいときに非常に便利です。


スポンサーリンク

2. テーブル(ListObject)でのClearFormatsの使い方

テーブルの場合、データ部分だけを対象にするには DataBodyRange を利用します。
これはテーブル内のヘッダー行を除いたデータ部分の範囲を表します。

以下は、テーブルの書式のみをリセットするサンプルコードです。

Sub Table_ClearFormats()
    Dim ws As Worksheet
    Dim tbl As ListObject
    
    '操作するシートを指定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    'シート内の1つ目のテーブルを取得
    Set tbl = ws.ListObjects(1)
    
    'テーブルのデータ部分(DataBodyRange)の書式をリセット
    tbl.DataBodyRange.ClearFormats
End Sub

スポンサーリンク

3. コードの解説

  • Set ws = ThisWorkbook.Sheets("Sheet1")
    → 処理対象のシートを指定しています。
  • Set tbl = ws.ListObjects(1)
    → 指定したシートにある最初のテーブルを取得します。テーブルが複数ある場合は (2) (3) と変更できます。
  • tbl.DataBodyRange.ClearFormats
    → データ部分のセルに設定されている色・罫線・フォントなどの書式をすべて削除します。

スポンサーリンク

4. ClearFormatsを使うとどうなる?

例えば、以下のような書式が設定されたテーブルがあるとします。

  • ヘッダーは青色の塗りつぶし
  • データ部分は交互に色付き(バンド行)
  • 一部のセルに赤文字や黄色背景を設定

これに対して ClearFormats を実行すると、データ部分の色や文字装飾は消えますが、入力されている値や数式はそのまま残ります


5. 注意点

  1. DataBodyRange が存在しない(テーブルが空)の場合はエラーになります。
    → この場合は If Not tbl.DataBodyRange Is Nothing Then で確認してから実行すると安全です。
  2. テーブル全体のスタイル(バンド行の色など)は ClearFormats では消えません。
    → テーブルのデザイン自体を変更したい場合は TableStyle を設定する必要があります(これは別記事で解説)。

6. まとめ

  • ClearFormats はセルの書式だけを削除し、データは残す。
  • テーブルの場合は DataBodyRange.ClearFormats を使うことで、データ部分のみを対象にできる。
  • 書式だけを一度リセットして整理したい場合に便利。

テーブルの管理で「データはそのまま、見た目だけきれいにリセットしたい」ときに、ぜひ活用してみてください。

コメント

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