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

スポンサーリンク

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

MsgBox Cells(1, Columns.Count).End(xlToLeft).Column

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

サンプルコード

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

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

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

MsgBox EndColumnSearch(Rows(1))
ブログランキング
PVアクセスランキング にほんブログ村
タイトルとURLをコピーしました