【VBA】ブック内のシート一覧を一括取得!Sheets.Countを使ったループ処理の基本
Excelブック内に存在するすべてのシート名を調べてイミディエイトウィンドウに出力する、VBAの基本サンプルです。Sheets.Count と Forループ を組み合わせて全シートを順番に走査する方法を解説します。
1. サンプル
ブックに含まれるすべてのシートの名称を上から順番に取得して出力します。
Sub Macro1()
Dim i As Long
' 1番目のシートから最後のシート(Sheets.Count)までループ
For i = 1 To Sheets.Count
Debug.Print Sheets(i).Name
Next i
End Sub
Dim i As Long
' 1番目のシートから最後のシート(Sheets.Count)までループ
For i = 1 To Sheets.Count
Debug.Print Sheets(i).Name
Next i
End Sub
2. プログラムの解説
コードの重要なポイントを整理します。
① Sheets.Count
現在開いているブックに含まれるシートの総数(ワークシートやグラフシートの合計)を数値で返します。これをループの終わりに指定することで、シートが増減しても自動的に全件を処理できます。
現在開いているブックに含まれるシートの総数(ワークシートやグラフシートの合計)を数値で返します。これをループの終わりに指定することで、シートが増減しても自動的に全件を処理できます。
② Sheets(i).Name
インデックス番号(`i` 番目)を指定してシートオブジェクトを取得し、その `.Name` プロパティでシート名(文字列)を取り出しています。
インデックス番号(`i` 番目)を指定してシートオブジェクトを取得し、その `.Name` プロパティでシート名(文字列)を取り出しています。
3. 実行結果
マクロを実行すると、イミディエイトウィンドウにシートの一覧が表示されます。
Sheet1
Sheet2
Sheet3
Sheet2
Sheet3