「excel 値のクリア マクロ」
「数式を残して値だけをクリア マクロ」
「エクセル 計算 セル 値クリア マクロ」
といった検索で、アクセスがあります。
Excelで、値だけ・値のみを削除・クリアするマクロを探している方による検索です。
プログラミングはできるけれど、Excelのジャンプ機能を知らない方の場合、ループを回しながらセルを一つずつ調べて、数式でなく値ならば削除するという、遅いマクロを作ってしまう可能性が高そうに思えます。
セルの値のみをクリアするマクロ
以下のような単純なマクロで、セルの値だけを削除することができます。On Error GoTo ErrHandl
Cells.SpecialCells(xlCellTypeConstants).ClearContents
Exit Sub
ErrHandl:
MsgBox "値の入力されているセルが存在しません。"
End Sub
Rangeオブジェクトが持つSpecialCellsメソッドを使うと、引数に指定した条件に合致するRangeオブジェクトを取得することができます。
上記のように、定数xlCellTypeConstantsを指定すれば、値の入力されているRangeオブジェクトが取得できます。
その取得できたRangeオブジェクトに対して、数式やデータを削除するClearContensメソッドを実行しています。
値の入力されているセルが存在していなときにエラーとなるので、
On Error GoTo ErrHandl
その場合メッセージを表示するようにしています。
MsgBox "値の入力されているセルが存在しません。"
ここではアクティブシート全体に対して処理するサンプルマクロをご紹介していますが、セル範囲を限定して、例えば、B2:G7セルの値だけをクリアする場合は、
Range("B2:G7").SpecialCells(xlCellTypeConstants).ClearContents
といったコードにしてください。
クリアと削除
この記事ではあえて「クリア」という単語と「削除」という単語を混在させて記述していますが、Excelの用語としての「クリア」と「削除」は異なります。
Excelでは、セル内のデータ・数式・書式などを消すときに「クリア」と呼び、セルそのものをまるごと消してしまうことを「削除」と呼ぶということを、マクロを作ろうとするレベルの方ならば覚えておいていただきたいと思っています。
最終更新日時:2020-01-08 09:08
Home » ExcelVBA Rangeオブジェクト » SpecialCellsメソッド » セルの値のみ削除・クリアする-SpecialCells(xlCellTypeConstants).ClearContents