Skip to content

ColLast

Summary

指定したシート内の指定した行における最終列の列番号を返す関数です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
Function ColLast(sheetName As String, row As Long) As Integer
'最終列を求める

On Error GoTo errExit
    colLast = Sheets(sheetName).Rows(row). _
                                Find(What:="*", _
                                LookIn:=xlFormulas, _
                                SearchOrder:=xlByColumns, _
                                SearchDirection:=xlPrevious).column

    Exit Function
errExit:
    colLast = 0
End Function

説明

指定したシート内の指定した行において最終列の列番号を求めるために使用します。
sheetName引数で検索するシートの名前を指定し、row引数で検索する行番号を指定します。

関数は、指定したシートと行を基準に、Findメソッドを使用して最終列を検索します。
検索は右から左に行われ、セルの中身に"*"(ワイルドカード)を含む最後のセルを見つけます。
該当するセルが見つかれば、その列番号を戻り値として返します。
エラーが発生した場合は、列番号0を戻り値として返します。

引数

  • sheetName (String型): 検索するシートの名前
  • row (Long型): 検索する行番号

戻り値

  • 戻り値の型: Integer型 (最終列の列番号)

Examples

使用例として、指定したシートと行における最終列の列番号を取得する方法が示します。

1
2
3
4
5
6
7
' シート名が"Sheet1"、行番号が1の場合の最終列の列番号を取得
Dim lastColumn As Integer
lastColumn = colLast("Sheet1", 1)

' シート名が"Data"、行番号が5の場合の最終列の列番号を取得
Dim result As Integer
result = colLast("Data", 5)