Home » ExcelVBA Rangeオブジェクト » SpecialCellsメソッド » セルの値のみ削除・クリアする-SpecialCells(xlCellTypeConstants).ClearContents

セルの値のみ削除・クリアする-SpecialCells(xlCellTypeConstants).ClearContents

対象:Excel2003, Excel2007, Excel2010, Excel2013

「excel 値のクリア マクロ」
「数式を残して値だけをクリア マクロ」
「エクセル 計算 セル 値クリア マクロ」
といった検索で、アクセスがあります。

Excelで、値だけ・値のみを削除・クリアするマクロを探している方による検索です。

プログラミングはできるけれど、Excelのジャンプ機能を知らない方の場合、ループを回しながらセルを一つずつ調べて、数式でなく値ならば削除するという、遅いマクロを作ってしまう可能性が高そうに思えます。

[スポンサードリンク]

セルの値のみをクリアするマクロ

以下のような単純なマクロで、セルの値だけを削除することができます。
Sub アクティブシートの値のみクリアする()
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

「SpecialCellsメソッド」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.