【Excel VBA】最終行を取得する・最終列を取得する方法

エクセルでVBAを作成していると、入力されている最終行や最終列まで繰返したいという場合が多くあります。この記事では、最終行・最終列を簡単に取得する方法をご紹介します。

最終行を取得する・最終列を取得する

最終行、最終列を取得するには、次のコードでそれぞれの値を取得することができます。

Sub 最終行_最終列取得()
    Dim MaxRow As Long
    Dim MaxCol As Long
    
    MaxRow = Cells(Rows.Count, 1).End(xlUp).Row
    MaxCol = Cells(1, Columns.Count).End(xlToLeft).Column

    MsgBox "最終行は、" & MaxRow & "行目です。" & vbCrLf & "最終列は、" & MaxCol & "列目です。"
End Sub

■実行結果

■解説

Rows.Countは、エクセルシートの一番最後の行(本当の意味での最終行)を意味しています。私が使っているExcel(Microsoft365のバージョン2307)の場合は、1048576が最終行になります。

Cells(Rows.Count, 1).End(xlUp).Row

はどういうコードかというと、1列目の最終行のセルから上方向に最後まで移動したときの行を表しています。そのため、Cellsの値の1→2変えることで、2列目の最終行を取得できます。

最終列を取得するコードも行と列が入れ替わるだけで大きな違いはありません。

最終行を取得するコードの実践例

冒頭で例に挙げましたが、最終行まで繰り返す処理を行いたい場合などに使えます。

次のコードは、A列に名前が入力されてあり、”様”をつけるコードになります。

Sub 最終行まで繰り返す()
    Dim MaxRow As Long
    Dim i As Long
    
    MaxRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 1 To MaxRow
        Cells(i, 1) = Cells(i, 1) & "様"
    Next
End Sub

■実行結果

コメント

タイトルとURLをコピーしました