Excelでフォーマットを作り、入力してプリントアウト、このフォーマットをもう一度使おうと思ったらデータをクリアして、まっさらな状態にする必要があります。
あらかじめClear・ClearContents・ClearFormatsを上手く使うことで、マクロ一発でフォーマットをまっさらな状態に戻すことが可能です。
ClearContentsメソッドの使い方
最初に差を書いておくと、ClearContentsが値、ClearFormatsが書式、Clearはその両方をクリアすることができます。
ですので、途中まで読んで大体わかったら別にこの記事全部読む必要はないです。3つそれぞれ説明していますが、上に書いた内容以上のことは書いていません。
対象.ClearContents

こんな感じのフォーマットで、入力した名前・住所・電話番号だけをクリアしてみます

開発→マクロへ進み、
Range(“B1:B3”).ClearContents
(B1~B3に入力された値をクリアする)と入力します

マクロを実行すると、書式を残してB1~B3の値だけが削除されました
ClearFormatsメソッドの使い方
今度は書式をクリアするClearFormatsの使い方です(ほぼ同じですが)。
対象.ClearFormats

さっきの式を編集して、
Range(“B1:B3”).ClearFormats
(B1~B3に設定された書式をクリアする)と入力しておきます

同じ表に対してマクロを実行すると……

書式がクリアされたので、罫線が消えました
Clearメソッドの使い方
Clearメソッドを使うと、値、書式の両方をまとめてクリアすることができます。ClearContentsとClearFormatsをまとめて実行しても同じ結果になります。
対象.Clear

式を編集して、
Range(“B1:B3”).Clear
(B1~B3の値と書式をクリアする)に変更します

書式は罫線以外にも、背景色やフォントなども含まれます

マクロを実行すると、書式と値がまとめてクリアされることが確認できました
セルを指定するのではなく、選択しているセルをクリアしたい場合
RangeではなくSelectionを指定することで、選択しているセルの内容をクリアすることが可能です。
' vba 選択中のセルの値をクリア
Selection.ClearContents


コメント