【Excel VBA】非表示行も含めて最終行を取得する

スポンサーリンク

通常は以下のようなコードで最終行を求められますが、最終行が非表示セルの場合は正常に求めることができません。

MsgBox Cells(Rows.Count, 1).End(xlUp).Row

最終行のセル非表示になることが想定される場合は、以下のコードを利用することで正常に最終行を求めることができます。

サンプルコード

非表示行を含めて最終行を返却するコードです。

Function EndRowSearch(ByRef target As Range) As Long
    Dim cellData As Variant: cellData = target.Resize(Rows.Count - target.Row + 1, 1)
    Dim i As Long
    For i = UBound(cellData) To 2 Step -1
        If cellData(i, 1) <> "" Then Exit For
    Next
    EndRowSearch = i
End Function

上記のコードを利用して、最終行を表示するサンプルコードは以下の通りです。

MsgBox EndRowSearch(Columns(1))
タイトルとURLをコピーしました