【ExcelVBA】最終行を取得する方法

ExcelVBA入門

VBAでループさせる時どこまでループさせるかを指定する必要がありますね。

今回はVBAで最終行を取得する方法を 分かりやすく詳細に ご紹介します。

最終行を取得する方法

結論からお話しますと、次の記述を使いましょう!

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

解説

なぜこれで最終行が取得できるのでしょうか。

ひとつひとつ分解して見ていきましょう。

まずはこの部分です。

Cells(Rows.Count, 1)

Cells() は ()の中にセルの 行番号 と 列番号 を入れることでセルを指定します。

たとえば Cells(1, 1) とした時は、 1行目 の 1列目 のセルを表しています。

Rows.Count は シートの1番下の 行番号 です。

1番下の行番号は 1048576 となっていますね。

ですので Cells(Rows.Count, 1) Cells(1048576, 1) のことです!!

.End(xlUp)

.End(xlUp)[Ctrl] + 上キー を押す動作と同じです。

Cells(Rows.Count, 1) の位置から [Ctrl] + 上キー を押してみましょう。

セルの位置が一番上に移動しました。

では次に、データが入っている状態でやってみましょう。

次のようなデータが入っているとします。

Cells(Rows.Count, 1) の位置から [Ctrl] + 上キー を押してみましょう。

データが入っている 一番下の行(最終行)に移動 しました!

そして最後にこの記述です。

.Row

これにより指定したセル位置の 行番号を取得 します。

まとめますと

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

と記述することで

シートの一番下から [Ctrl] + 上キー を押した状態データが入っている最終行行番号

が取得できます。

さいごに

いかがだったでしょうか。

今回はVBAで最終行を取得する方法をご紹介しました。

ループ処理をする場合には必須とも言えますので、ぜひとも理解していきましょう!

今後も丁寧に分かりやすくVBAをご紹介していきますので、よろしくお願いいたします。

コメント

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