最終列を取得します。一番右から左方向に検索して検出します。
最終列を取得(空白まで) とは動作が違うので使い分けてください。

例
GetLastColumn(Nothing,1) → 4
GetLastColumn(Nothing,2) → 2
GetLastColumn(Nothing,3) → 3
GetLastColumn(Nothing,5) → 4
GetLastColumnStr(Nothing,1) → “D”
GetLastColumnStr(Nothing,2) → “B”
GetLastColumnStr(Nothing,3) → “C”
GetLastColumnStr(Nothing,5) → “D”
' 指定した行の最終列数を取得(最右端から)
Function GetLastColumn(Optional ByVal ws As Worksheet = Nothing, Optional row As Long = 1) As Long
If ws Is Nothing Then
Set ws = ActiveSheet
End If
GetLastColumn = ws.Cells(row, Columns.Count).End(xlToLeft).column
End Function
' 指定した行の最終列名を取得(最右端から)
Function GetLastColumnStr(Optional ByVal ws As Worksheet = Nothing, Optional row As Long = 1) As String
Dim result As Long
If ws Is Nothing Then
Set ws = ActiveSheet
End If
result = ws.Cells(row, Columns.Count).End(xlToLeft).column
GetLastColumnStr = Split(Columns(result).Address, "$")(2)
End Function
【修正】
2025/03/02 Worksheet未指定時にSetが抜けていたので修正。


コメント