こんにちは。パソコン教室ISA銀座校です。
9月に入りましたが、最近は雨の日が多く、台風の影響などで天候が不安定な日も続いています。お出かけの際は、天気予報や交通情報を確認しながら、無理のないようお過ごしください。
今回は、VBAでデータの最終行を自動で取得する方法をご紹介します。
ExcelでVBAを使ってデータを処理するとき、「データが何行目まで入力されているか分からない」ということがあります。そんなときに便利なのが、データが入力されている最終行を自動で取得する方法です。
今回は、VBAの基本としてよく使われるコードを、実際の例を見ながら確認していきましょう。
データの最終行を取得してみよう!
例えば、ExcelのA列に次のようなデータが入力されているとします。

このとき、データが何行目まで入力されているのかをVBAで自動的に取得してみましょう。
使用するコードはこちらです。
lastRow = Cells(Rows.Count, 1).End(xlUp).Rowこのコードを実行すると、A列に入力されているデータの最後の行番号を取得できます。
例えば、データが10行目まで入力されている場合は、
lastRow = 10となります。
一見すると少し複雑に見えるコードですが、一つずつ分けて考えると分かりやすくなります。
Rows.Count これは、Excelの最大行数を取得します。
Excelの一番下の行を基準にすることで、途中に空白のセルがあっても、下から上に向かってデータを探すことができます。
Cells(Rows.Count, 1)これは、A列の一番下のセルを指定しています。
「1」は列番号を表しているため、
- 1 → A列
- 2 → B列
- 3 → C列
となります。
End(xlUp) 一番下のセルから、上方向に向かってデータが入力されているセルを探します。
Excelで「Ctrl+↑」を押したときと似たような動きをします。
Row 最後に、見つかったセルの行番号を取得します。
つまり、lastRow = Cells(Rows.Count, 1).End(xlUp).Row
は、A列の一番下から上に向かってデータを探し、最後に入力されているセルの行番号を取得するという処理になります。
実際に動かしてみよう!
それでは、実際に最終行を取得してみましょう。
今回は、取得した最終行をメッセージボックスで表示してみます。

このマクロを実行すると、A列に入力されているデータの最終行を取得し、メッセージボックスに表示します。
例えば、データが39行目まで入力されている場合は、「最終行は39行目です。」と表示されます。

最終行を自動で取得すると何が便利?
最終行を自動で取得できるようになると、データの件数が変わっても、入力されているデータに合わせて処理を行えるようになります。
例えば、
- データを最終行までコピーする
- 最終行まで書式を設定する
- 最終行まで集計する
- 最終行まで繰り返し処理を行う
といった処理に利用できます。VBAでデータを扱う際には、基本的なテクニックとしてよく使われる方法です。
VBAでExcel作業を効率化してみませんか?
今回ご紹介した「最終行の取得」のように、VBAにはExcelでの作業を自動化するための便利な方法がたくさんあります。最初は少し複雑に見えるコードでも、一つひとつの意味を理解していくことで、できることが少しずつ増えていきます。
パソコン教室ISA銀座校では、VBAの基本から実践的なマクロ作成まで、目的に合わせた個別レッスンを行っています。「VBAを勉強してみたいけれど、何から始めればいいか分からない」という方も、ぜひお気軽にご相談ください。皆さまのご来校を心よりお待ちしております。
無料体験レッスンのお申し込みはこちらをクリック
無料カウンセリングのお申し込みはこちらをクリック