エクセルバージョン
マイクロソフト365
VBAを頻繁に使用してる方はご存じかと思いますが、データの最終行番号取得は頻繁に使用するかと思います。
今回は非常に便利でVBAを使いこなすなら必須の最終行番号と最終列番号の取得方法について、データの途中に空白や重複などがあっても取得できる方法を解説していきたいと思います。
関数より簡単なので是非マスターしていってくださいね(★‿★)
簡単なのでサクッといきます(*゚▽゚)ノ
それではいってみましょう!
Menu
最終行番号を取得する
下記のようなA1~A10のデータで解説します。
まずは1から10のデータをA列に作成します。
たったの1文で完成です\(^^)/
1 | Cells(Rows.Count, 1).End(xlUp).ROW |
【解説】
エクセルのページの最終行(Rows.Count)まで行き、そこからデータの最終行にEnd(xlUp)で上方向に指定すると、データの最終行の行番号(Row)が取得できます。
※下記のような感じでデータの最終行番号の10が取得できます。
確認したい場合は、下記のコードを標準モジュールにコピペしてF8キーでステップインさせてご確認ください(*^^)v
1 2 3 4 5 6 7 | Sub データの最終行() '目視確認 Cells(Rows.Count, 1).Select 'ページ最終行選択 Selection.End(xlUp).Select 'データ最終行選択 End Sub |
VBAサンプル
➀A列の最終行番号をメッセージボックスに表示する(Cellsの場合)
1 2 3 4 5 6 7 8 9 10 | Sub testRow() '変数 Dim lastRowNum As Long '最終行番号を取得 lastRowNum = Cells(Rows.Count, 1).End(xlUp).ROW 'メッセージボックスに表示 MsgBox lastRowNum End Sub |
【結果】データの最終行番号
10
➁A列の最終行番号をメッセージボックスに表示する(Rangeの場合)
こちらも①と動作は同じですが記述方法が違います。
Rangeオブジェクトを使用した場合はインテリセンス機能が表示されるので便利です(^^♪
1 2 3 4 5 6 7 8 9 10 | Sub testRow2() '変数 Dim lastRowNum As Long '最終行番号を取得 lastRowNum = Range("A" & Rows.Count).End(xlUp).Row 'メッセージボックスに表示 MsgBox lastRowNum End Sub |
【結果】データの最終行番号
10
最終行番号を使用した実践はコチラ
最終列番号を取得する
1行目の最終列番号をメッセージボックスに表示する
1 2 3 4 5 6 7 8 9 10 | Sub testCol() '変数 Dim lastColNum As Integer '最終列番号を取得 lastColNum = Cells(1, Columns.Count).End(xlToLeft).Column 'メッセージボックスに表示 MsgBox lastColNum End Sub |
エクセルのページの最終列(Columns.Count)まで行き、そこからデータの最終列にEnd(xlToLeft)で左方向に指定すると、データの最終列の列番号(Column)が取得できます。
まとめ
特に最終行番号は頻繁に使用する機会が多い便利なものなので、この機会に覚えちゃいましょう!
以上です。
一番下の(最終行)行番号取得
一番下の行(最終行)の値を取得
行番号と行数や列番号と列数の取得
【VBA】列番号と列数(ColumnとColumns.Count)
関連記事
【PowerAutomate】エクセルの最終行番号を自動取得