Excel VBAで対象範囲をクリアする
Excelで入力する部分と関数で自動で計算するところを決めて一覧表を作ったりすることがあります。
その一覧表を使い回すときに、都度入力する部分をクリアするかと思います。
そんなときは、VBAマクロで簡単にクリアすることができます。
Excel VBA サンプルコード1
Sub HANICLEAR1()
Dim strSheetNam As String
Dim intStartrow As Integer
Dim intEndrow As Integer
Dim intStartclm As Integer
Dim intEndclm as Integer
intStartrow = 4 ' 開始行の指定(この場合4行目から)
intEndrow = 100 ' 最終行の指定(この場合100行目まで)
intStartclm = 2 ' 開始列の指定(この場合B列から)
intEndclm = 5 ' 最終列の指定(この場合D列まで)
strSheetNam = ActiveSheet.name
Worksheets(strSheetNam).Range(Cells(intStartrow, intStartclm), Cells(intEndrow, intEndclm)).ClearContents
End Sub
解説
「Range()」と「Cells()」を組み合わせて
上記の開始行、最終行と開始列、最終列の範囲を指定しています。
列の指定方法もA列→1、B列→2・・・のように数字で指定します。
そして「.ClearContents」でセルの値をクリアできます。
さらに入力する行や列がその時折で変化する場合も
以下のサンプルコードで対応することができます。
Excel VBA サンプルコード2
Sub HANICLEAR2()
Dim strSheetNam As String
Dim intStartrow As Integer
Dim intEndrow As Integer
Dim intStartclm As Integer
Dim intEndclm as Integer
Dim intMaxrow As Integer
intStartrow = 4 ' 開始行の指定(この場合4行目から)
'最終行の決定
MaxRow = Range("A4").End(xlDown).Row
intEndrow = MaxRow
intStartclm = 2 ' 開始列の指定(この場合B列から)
intEndclm = 5 ' 最終列の指定(この場合D列まで)
strSheetNam = ActiveSheet.name
Worksheets(strSheetNam).Range(Cells(intStartrow, intStartclm), Cells(intEndrow, intEndclm)).ClearContents
End Sub
解説
「MaxRow = Range(“A4”).End(xlDown).Row」の記述で
セル「A4」から連続で入力されている行の最後の行を取得するようにしていいます。
(連続で入力されていることが前提です)
これにより最終行の指定を汎用的にすることができます。
また最終列の指定も同様に
「intEndClm= Range(“A4”).End(xlToRight).Column」で変化させることができます。
この場合はセル「A4」から右方向に連続で入力されている最後の列を取得します。
状況に応じて使い分けてみてください!!
また今後もExcelやVBAについてお役立ち情報などご紹介していきたいと思います!!
以上、「【Excel VBA】対象範囲をクリアする」でした。