CurrentRegionの最終行を取得するコードを解説します。
一発で取得するプロパティは残念ながらありませんので、
Dim セル範囲 As Range Set セル範囲 = Range("A1").CurrentRegion Dim LastR As Long LastR = セル範囲.Rows.Count + セル範囲.Row - 1
と、CurrentRegionをストレートにセル範囲に入れて、その最終行を求めます。
あるセル範囲の最終行は、
- 最終行 = セル範囲全体の行数 + セル範囲の上部の行数
- セル範囲の上部の行数 = セル範囲の第1行 - 1
で求まりますね。
この「セル範囲の行数 + セル範囲の第1行 - 1」という式はよく出てきますので、
Function GetLastRセル範囲(セル範囲 As Range) As Long GetLastRセル範囲 = セル範囲.Rows.Count + セル範囲.Row - 1 End Function
と、セル範囲を渡すと最終行をくれる関数を作っておくと良いです。
この関数があると、CurrentRegionの最終行も
CurrentRegionの最終行 = GetLastRセル範囲(ActiveSheet.AutoFilter.Range)
これで求まるようになります。
最終行取得は良く扱うコードだけに、関数化のメリットも大きいです。
気が向いたら作ってみてください。