忍者ブログ
VBAによる実用アプリケーションの構築、およびGAS(Google Apps Script)やOffice Scriptへのモダンな移行パスを検証・解説するテックブログ。現場で即戦力となるコードモジュールや再利用可能な実用部品を継続的に提供します。

【VBA】ブック内のシート一覧を一括取得!Sheets.Countを使ったループ処理の基本

Excelブック内に存在するすべてのシート名を調べてイミディエイトウィンドウに出力する、VBAの基本サンプルです。Sheets.CountForループ を組み合わせて全シートを順番に走査する方法を解説します。

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

2. プログラムの解説

コードの重要なポイントを整理します。

① Sheets.Count
現在開いているブックに含まれるシートの総数(ワークシートやグラフシートの合計)を数値で返します。これをループの終わりに指定することで、シートが増減しても自動的に全件を処理できます。
② Sheets(i).Name
インデックス番号(`i` 番目)を指定してシートオブジェクトを取得し、その `.Name` プロパティでシート名(文字列)を取り出しています。

3. 実行結果

マクロを実行すると、イミディエイトウィンドウにシートの一覧が表示されます。

Sheet1
Sheet2
Sheet3