セルをクリアする方法を解説します。
値のみをクリアするClearContentsメソッドと、
書式など含めてすべてクリアするClearメソッドがあります。
セルの値をクリアする - ClearContents
セルの値をクリアする場合は、ClearContentsメソッドを実行します。
Range("A1:C5").ClearContents
このメソッドを実行するとセルの値のみがクリアされます。
Excelアプリ上でDeleteキーを押したときと同じ挙動ですね。
ひとつ注意点として、このメソッドは結合セルの一部分には実行できません。
例えば「A1:C5」がセル結合されている場合は、以下のような挙動になります。
Range("A1").ClearContents ' エラー Range("A1:B2").ClearContents ' エラー Range("A1:C5").ClearContents ' OK Range("A1:D7").ClearContents ' OK
結合エリア全体を含む大きな範囲であれば実行できますが、
結合エリアの内部だけをクリアすることはできません。
上記の通り「左上のセル」だったとしてもエラーになりますので、
A1:C5結合セルをクリアしたい場合は以下いずれかのコードを実行してください。
Range("A1").Value = "" Range("A1").MergeArea.ClearContents Range("A1:C5").ClearContents
セルの値・書式などをすべてクリアする - Clear
セルの各種設定をすべてクリアするには、Clearメソッドを実行します。
Range("A1:C5").Clear
このコードを実行すると、セルの持つ情報・設定のうち、
値・数式・表示書式・罫線・背景色・入力規則・コメントなどをクリアします。
ほぼ初期状態に戻す機能であり、
ホームタブ[編集]にある[すべてクリア]をVBAで実行するメソッドです。
この機能でクリアされないのは、セル上にある図形や画像くらいでしょうか。
ただしセル自体が消えるわけではないため、
例えばB1セルに「=A1」という数式が入っているとき、
Range("A1").Clear ' ← B1セルは「=A1」のまま Range("A1").Delete ' ← B1セルが「=#REF!」になる
このような動きになり、これがClearとDeleteの違いになります。
続いて結合セルに対する動きですが、これはClearContentsと同じで、
結合エリアの内部だけをクリアすることはできません。
' A1:C5が結合されているとき Range("A1").Clear ' エラー Range("A1:B2").Clear ' エラー Range("A1:C5").Clear ' OK Range("A1:D7").Clear ' OK
実行する場合は結合エリアを含む範囲に実行してください。
なお、「結合」も書式のうちのひとつですので、
Clearを実行するとセル結合は解除されます。
この仕様にも注意して使用してください。