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

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

対象:Excel2003, Excel2007, Excel2010, Excel2013

「excel 値のクリア マクロ」
「数式を残して値だけをクリア マクロ」
「エクセル 計算 セル 値クリア マクロ」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあります。

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

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

[スポンサードリンク]

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

以下のような単純なマクロで、セルの値だけを削除することができます。


Sub アクティブシートの値のみクリアする()
 On Error GoTo ERR_HNDL
 Cells.SpecialCells(xlCellTypeConstants).ClearContents
 Exit Sub

ERR_HNDL:
 MsgBox "値の入力されているセルが存在しません。"

End Sub

RangeオブジェクトのSpecialCellsメソッドを使うと、引数に指定した条件に合致するRangeオブジェクトを取得することができます。

上記のように、定数・xlCellTypeConstantsを指定すれば、値の入力されているRangeオブジェクトが取得できます。

その取得できたRangeオブジェクトに対して、数式やデータを削除するClearContensメソッドを実行しています。

値の入力されているセルが存在していなときにエラーとなるので、
 On Error GoTo ERR_HNDL

その場合メッセージを表示するようにしています。
  MsgBox "値の入力されているセルが存在しません。"

ここではアクティブシート全体に対して処理するサンプルマクロをご紹介していますが、セル範囲を限定して、例えば、B2:G7セルの値だけをクリアする場合は、
 Range("B2:G7").SpecialCells(xlCellTypeConstants).ClearContents

といったコードにしてください。

クリアと削除

この記事ではあえて「クリア」という単語と「削除」という単語を混在させて記述していますが、Excelの用語としての「クリア」と「削除」は異なります。

Excelでは、セル内のデータ・数式・書式などを消すときに「クリア」と呼び、セルそのものをまるごと消してしまうことを「削除」と呼ぶということを、マクロを作ろうとするレベルの方ならば覚えておいていただきたいと思っています。

関連語句
VBA, Visual Basic for Applications

[スポンサードリンク]

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

TrackBack:0

TrackBack URL
[スポンサードリンク]

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

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

.