【Excel VBA】セルの書式クリア(ClearFormatsメソッド)

りゅう
こんにちは!りゅう(@ryupong_b)です。
今回は、セルの書式クリアについて解説していきます。
はじめに
今回は、セルの書式をクリアする方法を解説します。
単一セルのクリアから、シート全体の書式クリアまで、サンプルコードを用いて解説しますので、是非最後までご覧ください。
この記事を読むメリット
  • セルの書式クリア方法が分かります。
  • エラーの回避方法について解説します。
  • サンプルコードを用いて、複数ケースの書式クリア方法を解説します。

基本情報

セルの書式をクリアするには、ClearFormatsメソッドを使用します。
セルのデータはそのままで、セルの書式のみをクリアします。

構文

Range(“A1”).ClearFormats

上記では、単一セルの書式クリアの構文です。
複数セルやシート全体の書式クリアについて、後ほどサンプルコードご紹介します。

注意点

セルの書式設定には、「罫線」や「セルの色」、「太字・斜体」などがありますが、「表示形式」もクリアされてしまいます。

例えば日付データの場合、書式クリアをしてしまうと「45199」などのシリアル値となってしまいます。
この場合、一度セルの書式をクリアした後に書式を再設定する必要があるのでご注意ください。

あわせて読みたい
【Excel】日付や時刻の数字(シリアル値)とは はじめに Excelを操作していると、日付を入力したのに「44909」みたいな数字になっちゃったことありませんか? その後、セルの書式を「日付」に変更すると治ったりしま...

めい
シリアル値については、この記事にて解説しています

サンプルコード

セルの書式をクリア

サンプルコード
Public Sub clearFormatForCell()

    ' A1セルの書式をクリアする
    Range("A1").ClearFormats

    ' A2 ~ B4セルの書式をクリアする
    Range("A2:B4").ClearFormats
End Sub

上記の方法では、結合されたセルに対してはエラーとなってしまいます。

エラーを回避する手段を、次項で紹介します。

結合セルの書式をクリア

サンプルコード
Public Sub clearFormatForMergeArea()

    ' A1を起点とし、セル(結合セル)分のすべての書式をクリアする
    Range("A1").MergeArea.ClearFormats
End Sub

表の書式をクリア

サンプルコード
Public Sub clearFormatForTable()

    ' A1を起点とするテーブルの書式をクリアする
    Range("A1").CurrentRegion.ClearFormats
End Sub

シート全体の書式をクリア

サンプルコード
Public Sub cellsClearFormat()

    ' 1番目のシート全体の書式をクリアする
    ThisWorkbook.Worksheets(1).Cells.ClearFormats
End Sub

さいごに

いかがでしたでしょうか。
今回は、セルの書式データについて解説しました。

この記事が、皆さんのお力になれたら幸いです!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA