-
∨目次
- 最終行を取得する
VBA 最終行を取得する
はじめに
Excel VBA マクロの最終行を取得する方法を紹介します。
Range.End メソッドで最終行を取得できます。
Rows プロパティから指定した範囲の最終行を取得できます。
-
目次
- 最終行を取得する
最終行を取得する
最終行を取得
指定したセルの終端を取得するにはRange.End(方向)のように入力します。
これは Excel でCtrl + ↑↓←→キーを入力したときと同じセルを取得できます。
方向には次のものがあります。
定数名 | 値 | 説明 |
xlUp | -4162 | 上端 |
xlDown | -4121 | 下端 |
xlToLeft | -4159 | 左端 |
xlToRight | -4161 | 右端 |
セル「B2」の下方向の終端の行を取得するにはRange("B2").End(xlDown).EntireRowを入力します。
Dim r As Range
Set r = Range("B2").End(xlDown).EntireRow ' セル「B2」の下端の行を取得
Set r = ActiveCell.End(xlUp).EntireRow ' アクティブセルの上端の行を取得
r.Select
セル「B2」の下方向は「B6」を、セル「C2」の下方向は「C3」を取得します。

C 列のように途中に空白のセルがあると、その前のセルが取得されます。
シート全体に対して列「C」の最終行を取得するには次のようにします。
Dim r As Range
Set r = Cells(Rows.Count, 3).End(xlUp).EntireRow ' 3 は C 列
r.Select
範囲の最終行を取得
セルの範囲の一番上の行番号を取得するにはRange.Rowのように入力します。
セルの範囲の行数を取得するにはRange.Rows.Countのように入力します。
セルの範囲の最終行を取得するにはRows(Range.Row + Range.Rows.Count - 1)またはRange.Rows(Range.Rows.Count).EntireRowのように入力します。
Dim r As Range ' 範囲
Set r = Range("B2:D4")
Dim last As Range ' 最終行
Set last = Rows(r.row + r.Rows.Count - 1) ' 範囲選択している最終行を取得
Set last = r.Rows(r.Rows.Count).EntireRow ' 範囲選択している最終行を取得
last.Select

使用している範囲の最終行を取得
使用されているセルの最大範囲を取得するにはUsedRangeを入力します。
その範囲に「範囲の最終行を取得」の方法で最終行を取得できます。
Dim r As Range
Set r = UsedRange ' 使用している範囲を取得
Dim last As Range
Set last = Rows(r.Row + r.Rows.Count - 1) ' 使用している最終行を取得
Set last = r.Rows(r.Rows.Count).EntireRow ' 使用している最終行を取得
last.Select
最大範囲とはシートに入力されている一番上、下、左、右のセルの範囲です。書式設定されているセルも含みます。

スポンサーリンク