【Excel VBA】対象範囲をクリアする

スポンサーリンク

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】対象範囲をクリアする」でした。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする