サイトについて      連絡先   検索

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」を取得します。

3

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
1

使用している範囲の最終行を取得

使用されているセルの最大範囲を取得するには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

最大範囲とはシートに入力されている一番上、下、左、右のセルの範囲です。書式設定されているセルも含みます。

2
  • 目次
    • 最終行を取得する