【エクセルマクロ】最終行以降を削除する:使用例4選 自動化

【エクセルマクロ】最終行以降を削除する-アイキャッチ ExcelVBA

エクセルマクロで、最終行以降を削除するコードを記載しています。

このページのマクロコードは、コピペで使えます。
ぜひお試しください😉

最終行以降を削除(アクティブシート)


Sub 最終行を検出して削除()
    Dim lastRow As Long
    
    '最終行を取得
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    '最終行以降を削除
    Rows(lastRow + 1 & ":" & Rows.Count).Delete
End Sub

 
アクティブシートのA列で値が入力されていない最終行を特定し、
その行以降をすべて削除する処理を行います。


 
 

最終行以降を削除(特定シート)


Sub 指定のシートの最終行以降を削除()
    Dim lastRow As Long
    
    ' "Sheet2"のA列で最後の行を見つけます
    lastRow = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
    
    ' "Sheet2"の最終行以降の行を削除します
    Sheets("Sheet2").Rows(lastRow + 1 & ":" & Rows.Count).Delete
End Sub

 
Sheet2のA列で値が入力されていない最終行を特定し、
その行以降をすべて削除する処理を行います。


 
 

最終行以降を削除(複数列を考慮)


Sub 最終行以降を削除する()
    Dim lastRow As Long
    
    ' A列とB列をチェックして、より大きい最後の行番号を見つけます
    lastRow = Application.WorksheetFunction.Max( _
              Cells(Rows.Count, "A").End(xlUp).Row, _
              Cells(Rows.Count, "B").End(xlUp).Row)
              
    ' 見つけた最終行以降の行を削除します
    Rows(lastRow + 1 & ":" & Rows.Count).Delete
End Sub

 
ワークシート上でA列とB列の両方を調べて、
入力されているデータの最も下にある行を検出します。

この最終行を基にして、それ以降の全ての行を削除します。


 
 

最終行以降を削除(全シート適用)


Sub 最終行以降を削除する()
    Dim ws As Worksheet
    Dim lastRow As Long
    
    ' ワークブック内の全シートに対してループ処理します
    For Each ws In ThisWorkbook.Sheets
    
        ' 各シートのA列で最後の行を見つけます
        lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
        
        ' 各シートの最終行以降の行を削除します
        ws.Rows(lastRow + 1 & ":" & Rows.Count).Delete
    Next ws
End Sub

 

マクロ実行前


 

マクロ実行後

Excelのブック内にある全てのシートに対して作用します。

各シートのA列の最終行を見つけて、
最終行以降にある行を、そのシートから削除します。


 
 
この記事がお役に立ちますと幸いです。
 

【エクセルマクロ】最終行までコピーする:使用例6選
...

 

「スラスラ読める Excel VBAふりがなプログラミング」
プログラムの読み方をすべて載せる(ふりがなをふる)」という手法で究極のやさしさ!
マクロを考える応用問題も用意しているため、ExcelVBAの基礎を身につけることができます