Home » ExcelVBA Rangeオブジェクト » CurrentRegionプロパティ » CurrentRegionの最終行番号

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「excel vba currentregion 最終行」
という検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。

RangeオブジェクトのCurrentRegionプロパティで取得できるセル範囲の、

CurrentRegionの最終行番号

最終行(最後の行・一番下の行)の行番号を取得する、Excel VBA(Visual Basic Applications)のコードを探していらしたのでしょうか。

この記事では、異なる考え方のマクロを二つご紹介します。

[スポンサードリンク]

アクティブセル領域の最終行番号を取得するサンプルマクロ

一つはコレクションオブジェクトとしてのRangeから、単一オブジェクトとしてのRangeを取得するオブジェクト式を利用したマクロです。

以下のマクロを実行すると、アクティブセル領域の最終行番号がメッセージボックスに表示されます。

Sub アクティブセル領域の最終行番号を取得する()

 MsgBox _
  ActiveCell.CurrentRegion(ActiveCell.CurrentRegion.Count).Row

End Sub

「ActiveCell.CurrentRegion.Count」というオブジェクト式で、アクティブセル領域に含まれるセルの数を取得できます。

「ActiveCell.CurrentRegion.Count」というオブジェクト式を、ActiveCell.CurrentRegionプロパティの引数(正確にはRangeオブジェクトの既定のプロパティの引数)に指定した「ActiveCell.CurrentRegion(ActiveCell.CurrentRegion.Count)」というオブジェクト式で、アクティブセル領域(コレクションオブジェクトとしてのRange)の最後のセルを表す単一オブジェクトとしてのRangeを取得できます。

「ActiveCell.CurrentRegion(ActiveCell.CurrentRegion.Count)」というオブジェクト式で取得した、アクティブセル領域の最後のセルを表すRangeオブジェクトのRowプロパティを取得すれば、CurrentRegionの最終行番号を取得できることになります。

Split関数を使ってアクティブセル領域の最終行番号を取得する

もう一つは配列の考え方を利用した、Split関数を使ったマクロです。

以下のマクロを実行した場合も、アクティブセル領域の最終行番号がメッセージボックスに表示されます。

Sub アクティブセル領域の最終行番号を取得する_Split関数()

 MsgBox _
  Split(ActiveCell.CurrentRegion.Address , "$")(4)

End Sub

「ActiveCell.CurrentRegion.Address」というオブジェクト式は、必ず「$A$1:$G$7」のような形で、アクティブセル領域のアドレスを表す文字列を、絶対参照の形で返します。

この文字列内に「$」は、必ず4つ存在していて、4つ目の「$」の後ろの数字が、アクティブセル領域の最終行番号を表しています。この数字を取得しているのが「Split(ActiveCell.CurrentRegion.Address , "$")(4)」というコードです。

「Split(ActiveCell.CurrentRegion.Address , "$")(4)」というコードの意味がわからないという方は、まず以下の記事を理解しましょう。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » CurrentRegionプロパティ » CurrentRegionの最終行番号

「CurrentRegionプロパティ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.