3/30/2024

Excel。VBA。表の見出しや小計・総計は残して、数値のデータだけを削除したい【Delete only numbers】

Excel。VBA。表の見出しや小計・総計は残して、数値のデータだけを削除したい

<SpecialCellsメソッド>

見出し行や集計行などは、残してデータの数値だけを削除したい。

範囲選択をして削除するだけですが、範囲選択が面倒になってきます。

SpecialCellsメソッド

B2:D4とB6:D8のデータを削除したいわけです。


そこで、Excel VBAでプログラム文をつくってみることにしました。


Sub 数値のみ削除()

Range("a1").CurrentRegion.SpecialCells(xlCellTypeConstants, xlNumbers).ClearContents

End Sub


では、実行してみましょう。


B2:D4とB6:D8のデータだけを削除することができました。

数式や見出し行は残すことができました。


それでは、プログラム文を確認します。


Range("a1").CurrentRegion.SpecialCells(xlCellTypeConstants, xlNumbers).ClearContents


Range("a1").CurrentRegion で、A1を起点とした連続したデータを範囲選択します。


SpecialCellsメソッドを使用すると、指定した条件に該当するセルを取得することができます。


xlCellTypeConstantsは、定数が含まれているセルという意味です。


さらに、xlNumbersというValueの設定値は、”数値”を意味します。


つまり、『数値の入っているセル』という意味になります。


よって、A1を起点とした連続する、数値が入力されているセルを範囲選択して、削除(ClearContents)するという処理ができるというわけです。


たった一行なので、用意していてもいいかもしれませんね。