Excel VBA 数値が入力されているセルのみ値をクリアする

スポンサーリンク

数値が入力されているセルのみ値をクリアする方法

データ内の数式や文字列は残したまま入力された数値のみ削除したい場合があります。

方法としては、データ範囲を参照するRange【レンジ】オブジェクトのCurrentRegion【カレントリジョン】プロパティでデータ範囲を参照し、特定のセルを参照するRange【レンジ】オブジェクトのSpecialCells【スペシャルセルズ】メソッドを使用して「値が数値のセル」を参照し、参照したセルの値を削除するRange【レンジ】オブジェクトのClearContents【クリアコンテンツ】メソッドを使用して参照した「値が数値のセル」の値を削除します。

SpcialCells【スペシャルセルズ】メソッド

参照したセル範囲の中で引数Type【タイプ】に指定したセルの種類を満たす、すべてのセルを参照するには、Range【レンジ】オブジェクトのSpcialCells【スペシャルセルズ】メソッドを使用します。SpcialCells【スペシャルセルズ】メソッドの設定値はExcelの「ホーム」タブの「編集」グループにある「検索と選択」ボタンの「条件を選択してジャンプ」の「選択オプション」ダイアログと同じ内容です。

SpcialCells【スペシャルセルズ】メソッドの書式の書式と設定値(引数)の説明

[]内は省略可能です。
オブジェクト.SpcialCells(Type[,Value])

  • オブジェクト(必須)
    参照するセル範囲をRange【レンジ】オブジェクトを指定します。
  • Type【タイプ】(必須)
    参照するセルの種類をXlCellType列挙型の定数で指定します。

    XlCellType列挙型
    定数内容
    xlCellTypeAllFormatConditions条件付き書式が設定されているセル
    xlCellTypeAllValidation入力規則が設定されているセル
    xlCellTypeBlanks空白セル
    xlCellTypeCommentsコメントが含まれているセル
    xlCellTypeConstants定数が含まれているセル
    xlCellTypeFormulas数式が含まれているセル
    xlCellTypeLastCell使われたセル範囲内の最後のセル
    xlCellTypeSameFormatConditions同じ条件つき書式が設定されているセル
    xlCellTypeSameValidation同じ入力規則が設定されているセル
    xlCellTypeVisibleすべての可視セル
  • Value【バリュー】(省略可)
    引数Type【タイプ】にxlCellTypeConstants(定数)またはxlCellTypeFormulas(数式)を指定した場合に、引数Value【バリュー】にXlSpecialCellsValue列挙型の定数を指定して、特定の種類の定数や数式を含むセルだけを参照することができます。省略した場合は、すべての定数および数式が対象になります。

    XlSpecialCellsValue列挙型
    定数内容
    xlNumbers数値のあるセル
    xlTextValuesテキストのあるセル
    xlLogical論理値のあるセル
    xlErrorsエラーのあるセル

ClearContents【クリアコンテンツ】メソッド

指定したセル範囲のセルの値を消去するには、Range【レンジ】オブジェクトのClearContents【クリアコンテンツ】メソッドを使用します。セルの書式や数式は残したまま値のみ消去します。

ClearContents【クリアコンテンツ】メソッドの書式と設定値の説明

オブジェクト.ClearContents

  • オブジェクト(必須)
    値を消去するセル範囲をRange【レンジ】オブジェクトで指定します。

A1セルから始まるデータ範囲の数値のみクリアするコード例

Sub 数値消去()
    Range("A1").CurrentRegion.SpecialCells(xlCellTypeConstants, xlNumbers).ClearContents
End Sub

実行結果


以上で、数値が入力されているセルのみ値をクリアする方法の解説を終了します。
ありがとうございました。

スポンサーリンク

関連記事・広告