シート名取得を繰り返し一覧を作成するマクロ。シートの数だけ 同じ処理を繰り返す

ブック内のすべてのシートに同じ処理をする、シート名一覧を作成

マクロ講座32回 For文をつかってすべてのシートの名前を取得する
マクロでブックのシート名一覧を作成

全部のシートに対して、そのシート名取得を繰り返す マクロ講座講座32回

シート名一覧を作成するマクロ

シートがたくさんあると、目的のシートがどんな名前だったのか、忘れてしまったりします。 またシートを選択するのもシートが多いとたいへんですね。
そこで今回は、シート名一覧を表示するマクロを作成します。全シートの枚数分、シート名取得を繰り返して一覧表を作成する操作をマクロで行いましょう。
(サンプルファイルは、こちらから 2013マクロ32回サンプルデータ

シート名一覧を作成するマクロ

今回たくさんあるシートの名前を取得して、一覧に書き出すマクロを作成するのに、 使うのはマクロ講座26回 For~Next 決められた回数の繰り返しを行うで紹介したFor~Nextステートメントです。 何枚あるか不明のシート名を順に取得して、A1セルから下に記入します。
シートの名前を取得

For~Nextステートメントの使い方

For~Nextステートメントの使い方
最初に、Forで繰り返し回数を宣言します。
繰り返し回数は、カウンタの変化範囲(開始値と終了値)で指定します。
For~Next
たとえば、「開始値が1,終了値が5」なら繰り返しは、5回。
「開始値が6、終了値が10」であっても繰り返し回数は5回です。
繰り返しの終了位置はNextで指定します。
For~Next が実行されると、カウンタの値が開始値から1ずつカウントアップされ、終了値に達すると繰り返しが終了します。
カウンタ変数の終了値にシートの枚数をカウントするSheets.Countを利用します。
繰り返し回数までの処理として、Range("A" & i).Value = Worksheets(i).Nameとします。
コードは、以下のようになります。
Sub シート一覧マクロ()
    Dim i As Long
    For i = 1 To Sheets.Count
    Range("A" & i).Value = Worksheets(i).Name
    Next i
End Sub
シート一覧マクロ

マクロを実行してみましょう。
シート名一覧が取得できました。
シート一覧マクロ2
A1セルに「シート名一覧」のようにタイトルを入れて、一覧をA2から始めたい場合は、
コードは、For i = 2 To Sheets.Countとしてください。
Sub シート一覧マクロ()
    Dim i As Long
    For i = 2 To Sheets.Count
    Range("A" & i).Value = Worksheets(i).Name
    Next i
End Sub
シート一覧マクロ3

今日の講義は以上です。お疲れ様でした。