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