小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

ExcelVBAでシート名を求める

シート数は「Worksheets.Count」で、シート名は「Worksheets(インデクス番号).Name」です。
これを元にシート名を求める関数を組んでみました。
ちなみに、インデクス番号は1オリジン(1から始まる)です。
また、シートを削除してもインデクス番号が歯抜けになることはありません(必ず1から始まる連番)。

シート名取得関数

Function getSheetNames() As Variant
Dim vntSheetNames() As Variant
Dim int_i As Integer

    ReDim vntSheetNames(Worksheets.Count - 1)
    For int_i = 0 To Worksheets.Count - 1 Step 1
        vntSheetNames(int_i) = Worksheets(int_i + 1).Name
    Next
    getSheetNames = vntSheetNames
End Function

テストサブルーチン

Sub test()
Dim vntSheetNames As Variant
Dim vntSheetName As Variant
    
    vntSheetNames = getSheetNames()

    For Each vntSheetName In vntSheetNames
        MsgBox vntSheetName
    Next
End Sub