【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)などを忘れずに!
以上です。