本記事ではエクセル (Excel) で現在使用しているファイル内の複数シート名の一覧を取得する方法を3つご紹介します。シートが多く存在し、手動で取得できない場合に特に有用です。VBAを使用しない方法もご紹介していますので、どなたでも簡単に活用できます。
Excelファイルの全シート名の一覧を取得したい
結論
本記事でご紹介する、シート名一覧を取得する方法は下記の3通りです
(クリックで該当セクションにジャンプします)
- [ホーム]タブ→[書式]→[シート名の変更]からシート名を手動でコピペする
- [名前付き範囲]に下記の数式を登録し、任意のセルに登録した名前を入力する (VBA不要!)
=TEXTAFTER(GET.WORKBOOK(1), "]")
- VBAで下記のコードを実行し、現在選択中のセルから下にシート名一覧を出力する
Sub GetAllSheetNames() 'Written by consulting-campus.site Dim sht As Worksheet Dim cell As Range For Each sht In ActiveWorkbook.Worksheets If ActiveSheet.Name <> sht.Name Then ActiveCell = sht.Name ActiveCell.Offset(1, 0).Select End If Next sht End Sub
方法1:手動でシート名をコピペする
まず、シート数が数枚程度の場合に利用できる簡単な方法をご紹介します。シート名を逐一コピペするになります。具体的なステップは下記のとおりです。
以上が、手動でシート名を取得する方法の解説になります。シート名が数多く存在する場合に全シートや複数のシート名の一覧を取得したい方はこちらではなく、次2つの方法をご検討ください。
方法2:[名前付き範囲]にシート名一覧を表す数式を登録する
次に、[名前付き範囲]に数式を登録し、任意のセルに=[登録した名前]
と入力する方法をご紹介します。数式の登録後は、簡単にシート名一覧を出力することができるので非常に便利な方法になります。ファイルを保存する際にはマクロ有効ブック(*.xlsm)として保存する必要があるのでご注意ください。
- ステップ1
- ステップ2
名前付き範囲を使用してシート名一覧を出力する方法の解説
シート名一覧を出力するための名前付き範囲を登録する
- [数式]タブの[名前の管理]を開く: [数式]タブの[定義された名前]セクションにある[名前の管理]をクリックします
- 新しい名前を作成: [新規作成]ボタンをクリックして新しい名前を作成します。
- 名前と数式を入力:下記の数式を任意の名前で登録します。ここでは
list_SheetNames
という名前で登録しています=TEXTAFTER(GET.WORKBOOK(1), "]")
任意のセルに登録した名前を出力する
最後に、任意のセルに先程登録した名前付き範囲 (ここではlist_SheetNames
) と入力します。これにより、現在のシートを含め、ファイル内の全シート名の一覧が出力されます。出力の方向を縦・横で切り替えるには=TRANSPOSE(list_SheetNames)
のように[TRANSPOSE関数]を使用してください。
最後に、一連の動作のショートカットは下記のとおりです。
方法3:VBAでシート名一覧を出力する
最後に、下記のExcelのVBAコードを使用してブック内のシート名一覧を出力する方法をご紹介します。コードの使用方法を動作について解説します。
Sub GetAllSheetNames()
'Written by consulting-campus.site
Dim sht As Worksheet
Dim cell As Range
For Each sht In ActiveWorkbook.Worksheets
'現在のシート名を出力したい場合はIf節をコメントアウトしてください
If ActiveSheet.Name <> sht.Name Then
ActiveCell = sht.Name
ActiveCell.Offset(1, 0).Select
End If
Next sht
End Sub
シート名一覧を出力するマクロを登録する
まず、Alt+F11 キーを押して、ビジュアルエディタを開きます。
ビジュアルエディタ上で[挿入] → [標準モジュール] (Alt+I→M) で新しいモジュールを作成します。
シート名一覧を出力するマクロを実行する
開いたモジュールにて、下記のコードを入力し、F5 キーを押して実行します。実行時には通常の計算シートにて、シート一覧を取得したいセルを選択状態にするようにしてください。
Sub GetAllSheetNames()
'Written by consulting-campus.site
Dim sht As Worksheet
Dim cell As Range
For Each sht In ActiveWorkbook.Worksheets
'現在のシート名を出力したい場合はIf節をコメントアウトしてください
If ActiveSheet.Name <> sht.Name Then
ActiveCell = sht.Name
ActiveCell.Offset(1, 0).Select
End If
Next sht
End Sub
実行後、A2:A11
セルにファイル内の全シート一覧が取得・出力されていることが確認できます。
おわりに
以上が、エクセルでシート名一覧を取得する方法3選のご紹介となります。
ご質問やご不明点がある場合はお気軽にコメントお待ちしております。
ご精読いただきありがとうございました。
コメント