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