【VBA】値のあるセルの最終行を取得する方法


今回は、値のあるセルの最終行までループ処理する方法です。

以下のデータを使用します。
単価と個数の合計金額を入力する時に、行数が変更されても正しく処理されるようにします。

まずは、ソースコードを記載します。

vb.合計金額の計算
Sub 合計金額の計算()

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row

    Cells(i, 4) = Cells(i, 2) * Cells(i, 3)

Next

End Sub

最終行を取得するためには、以下のコードになります。

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

「Rows.Count」は、シートの最終行を取得しています。
2007以降なら1048576(行)が入ると思います。

「.End(xlUp)」は、セルに値が入ってるところまで、下から上にジャンプしてくれます。
やっている操作は、Ctrl + ↑と同じ処理になります。

結局何をやっているかというと、1列目の最終セルから、値のあるセルまで上にジャンプしています。

最後に、ジャンプして止まったセルの行数を取得するため、「.Row」を記載します。

最終行までループ処理が出来れば、あとは必要な計算を行ってセルに入力すれば完了です!

以上、値のあるセルの最終行を取得する方法でした。