【VBA】すべてのシート名を取得する

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 を活用
  • 配列に格納することで柔軟なシート操作が可能

コメント

タイトルとURLをコピーしました