技術tips保管庫

技術tips保管庫

Excel VBAを中心に、仕事で役立つあれこれを記録

【Excel VBA】全シート名を一覧化する

このページで書くこと

Excelブック内にある全シートの名前を取得し、その一覧を作成します。

経緯

たまに「このブックのシート名の一覧表がほしい!」と思うことがあります。
用途はさまざまですが、確認用のチェックシートにしたり、目次として使用することが多いです。

シート数が少なければ、1つずつシート名をコピーしていけばいいのですが、量が多いと面倒すぎてやる気になれません。
なので、VBAで解決しました。

使用するコード

Sub ALL_SHEET_NAME()
'
    Worksheets.Add Before:= Worksheets(1) 'シート名の一覧表をブックの先頭に作成
    ActiveSheet.Name = "シート名一覧"
    '
    Dim i As Long
    For i = 1 To Worksheets.Count
        Range("A" & i) = Sheets(i).Name '新規作成したシートのA列にシート名を書き出し
    Next i
    '
End Sub

備考

新規シートをブックの先頭に作成し(Worksheets.Add)、「シート名一覧」という名前にしました(ActiveSheet.Name)。
その後、自動でシート数を数え(Worksheets.Count)、A列の1行目から順番に取得したシート名を入力しています(Sheets(i).Name)。
変数 i はシート番号兼、「シート名一覧」の行番号です。

処理後は、このマクロの削除や拡張子の修正(xlsm→xlsx)などを忘れずに!

以上です。