みなさんこんにちは、現役エンジニアのサメハックです
未経験からWebエンジニアに転職し、
現在正社員として5年働いたのちフリーランスとして独立しました。
1分で理解できるVBA講座シリーズです。
今回は最終行番号を取得する方法について学んでいきましょう!
駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!
この記事を読むと・・・
- 1分で最終行番号が取得出来る
1分で理解できるVBA講座シリーズはじめっ!
初期設定
マクロを有効にする

Excelファイルを開き、
ファイル→オプション→トラストセンター→トラストセンターの設定→マクロの設定
という順に進み、
VBAが有効な場合にExcel4.0のマクロを有効にする
という項目にチェックを入れてください。
VBEの起動
Excelファイルを開いた状態でAlt+F11を押してVBEを開いてください
モジュールの作成


挿入→標準モジュール
という順に操作すると自動的にモジュールが開くので、ここにコードを記述します。
最終行番号を取得しよう!

ループ処理を作る際などに、
値が入ったセルの最終行番号を取得したいことがあると思います。
今回はそういった際に使える方法となります。
最終行番号を取得する構文
Cells(Rows.Count, 行)
これはエクセルの最終行番号が取得されるよ
値が入ったセルの最終行番号を取得する構文
Cells(Rows.Count, 行).End(xlUp).Row
パッと見は何をやっているのかわかりにくいけど
最終行から、Ctrl+↑を押した際のセルの行番号が取得されるよ!
最終行から、Ctrl+↑を押した際のセルの行番号が取得されるよ!
実際に動かしてみよう!

Sub 最終行番号の取得()
Debug.Print ("A列の最終行:" & Cells(Rows.Count, "A").End(xlUp).Row)
Debug.Print ("B列の最終行:" & Cells(Rows.Count, "B").End(xlUp).Row)
Debug.Print ("C列の最終行:" & Cells(Rows.Count, "C").End(xlUp).Row)
Debug.Print ("D列の最終行:" & Cells(Rows.Count, "D").End(xlUp).Row)
End Sub

このマクロを実行すると、
イミディエイトウィンドウに値が入ったセルの最終行番号が表示されました。
For文で活用する構文
For i = 開始行 To Cells(Rows.Count, 1).End(xlUp).Rows
'処理
Next
このように記述すると、For文で最終行の指定が不要となります。
以下の記事ではこの書き方を採用しているので
是非参考にしてみてください。

【VBA】条件分岐処理をつくろう!【Excel】
最終行番号が取得できてえらい!
まとめ

- シートの最終行・・・Cells(Rows.Count, 行)
- 値が入ったセルの最終行・・・Cells(Rows.Count, 行).End(xlUp).Row

満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈