【Excel VBA】最終行を取得する

Excel

今回は、Excel VBAで最終行を取得する方法についてです。

VBAで目的の処理を実行する場合に、対象となる列の最終行を取得したいことは多々あります。

これができるだけかなり効率が変わりますので、今回の記事で紹介したいと思います。

本記事は、基本的な構文の解説は省略しています(別記事でまとめる予定です)

本記事のポイント

✔ VBAで最終行を取得する方法
✔ 下記はよく使う文なので、覚えておくとGood
 →Worksheets(“Sheet1”).Cells(Rows.Count, 1).End(xlUp).Row

実現したいこと

例)A列に入っている値として、最終となる行の番号(何行目であるか)を取得する

下の画像で言うと、17行目を取り出すことになります。

なお今回は、A列の最終行より前に値の入っていないセルがあっても問題なく最終行を取得できるコードを作成します。

画像2

最終形のコード

いきなりですが、実現したいことを実際にコードに書くと、以下のようになります。

かなり簡単な例です。

Sub 最終行取得

Dim lastrow As Integer
lastrow = Worksheets(“Sheet1”).Cells(Rows.Count, 1).End(xlUp).Row

End Sub

コードの解説

コードを解説します。

Dim lastrow As Integer

“lastrow”Integer型の変数として宣言してます。

lastrow = Worksheets(“Sheet1”).Cells(Rows.Count, 1).End(xlUp).Row

次に、上記の文でlastrowに以下を代入しています。

Worksheets(“Sheet1”):
ワークシートSheet1に対して・・・

.Cells(Rows.Count, 1):
1列目(A列)のすべての行を示す”Rows.Count”の・・・

.End(xlUp).Row:
1列目(A列)の最後の行番号(一番下のセルから、「Ctrl+↑」を押した時と同じ)

というような形で、最終行を取得しています。

他にも方法はあると思いますが、また新しい情報などあれば追記していきます。

まとめ

以上、今回はExcel VBAで最終行を取得する方法でした。

lastrow = Worksheets(“Sheet1”).Cells(Rows.Count, 1).End(xlUp).Row

VBAで最終行を取得することは多々あります。個人的にはこれが出来れば、色々とできる幅が広がる印象です。

少しでも参考になれば幸いです。 最後までお読みいただき、ありがとうございました。

コメント

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