Excel VBAを使うと、ブック内に存在する すべてのシート名を簡単に取得 できます。これにより、シート一覧を自動で作成したり、特定のシートを検索するための処理が可能になります。
本記事では、すべてのシート名を取得して利用する方法をサンプルコード付きで解説します。
1. すべてのシート名を取得する基本コード
Worksheets
コレクションをループして、各シートのName
プロパティを取得します。
Sub GetAllSheetNames()
Dim ws As Worksheet
For Each ws In Worksheets
Debug.Print ws.Name 'イミディエイトウィンドウに出力
Next ws
End Sub
上記コードを実行すると、ブック内のすべてのシート名がイミディエイトウィンドウ(Ctrl + G)に表示されます。
2. シート名をセルに一覧表示する
取得したシート名を、シート上のセルに順番に出力することも可能です。
Sub ListSheetNames()
Dim ws As Worksheet
Dim i As Long
i = 1
For Each ws In Worksheets
ThisWorkbook.Sheets(1).Cells(i, 1).Value = ws.Name
i = i + 1
Next ws
End Sub
この例では、1枚目のシートのA列にシート名が順に出力されます。
3. シート名を配列に格納する
シート名を配列にまとめて扱いたい場合は、以下のように書きます。
Sub GetSheetNamesToArray()
Dim ws As Worksheet
Dim sheetNames() As String
Dim i As Long
ReDim sheetNames(1 To Worksheets.Count)
i = 1
For Each ws In Worksheets
sheetNames(i) = ws.Name
i = i + 1
Next ws
'確認:配列の内容をイミディエイトに出力
For i = LBound(sheetNames) To UBound(sheetNames)
Debug.Print sheetNames(i)
Next i
End Sub
4. まとめ
Worksheets
コレクションをループすれば全シート名を取得できる- セルに一覧表示する場合は
.Cells(row, col).Value
を活用 - 配列に格納することで柔軟なシート操作が可能
コメント