Excelで複数のシートを扱っていると、「いま何枚シートがあるのか」「まとめて一覧表示できないか」と悩む場面は意外と多いですよね。
手動でタブを数え上げるのは手間がかかるばかりか、間違いの原因にもなりがちです。
そこでこの記事では、わずかなステップでExcelの全シート名をまとめて取得できる3つの方法と、それぞれの特徴をご紹介します。
- イミディエイト ウィンドウから全シート名を一覧取得
- Excelのマクロ関数を使って全シート名を一覧取得
- Excelのマクロを使って全シート名を一覧取得する方法
用途や場面に応じてそれぞれ使い分けてみてください。
イミディエイト ウィンドウから全てのシート名を一覧で取得する方法
まず最初にご紹介するのが、VBAの開発画面 (VBE) の「イミディエイト ウィンドウ」を使い、全シート名を出力する方法です。
- Excelを開き、
Alt + F11
でVBAエディターを起動します。 - VBAの開発画面 (VBE)で
Ctrl + G
を押して「イミディエイトウィンドウ」を表示します。 - 以下のコードをイミディエイトウィンドウに入力して
Enter
を押します。
For Each i In ThisWorkbook.Sheets: debug.print i.name : next i
- イミディエイトウィンドウに全てのシート名が一覧表示されます。
一時的にExcelブック内全体のシート名を確認したいなら、イミディエイト ウィンドウの活用が最適です。
入力したコードの結果がすぐに表示され、コピーしてExcelのシートに貼り付けることもできます。
また、なマクロを組む必要がないため、初心者でも手軽に試せる点も大きな魅力です。
ここからは、イミディエイト ウィンドウから全てのシート名を一覧で取得する方法を、実際の画面を使いながらわかりやすく解説しています。
次に、「Visual Basic」をクリックしてください。
「Visual Basic」をクリックすると、VBAの開発画面 (VBE) が表示されます。
上部にある「表示(V)」をクリックし、メニューの中から「イミディエイトウィンドウ(I)」をクリックしてください。
「イミディエイトウィンドウ(I)」をクリックすると、VBAの開発画面 (VBE)の下部に「イミディエイト」と書かれた枠が表示されます。
その枠の中に、以下の文字列を貼り付けてEnter
を押してください。
For Each i In ThisWorkbook.Sheets: debug.print i.name : next i
Enter
を押すと、イミディエイトウィンドウの中にExcelブック内の全シート名が表示されます。
表示されたシート名を選択し、Ctrl
+C
でコピーしてください。
コピーしたシート名をExcelに貼り付ければ完成です。
これで、Excelブック内の全てのシート名を一覧で取得することができました。
Excelのマクロ関数を使って全てのシート名を一覧で取得する方法
次は、Excelの「マクロ関数」を使って、Excelファイル内の全シート名を一覧で取得する方法をご紹介します。
通常のExcel関数とは異なる仕組みですが、うまく活用すればVBAを使わずにシート名の一覧を取得できます。
簡単な流れは以下のとおりです。
- 「数式」タブ→「名前の管理」をクリック
- 「名前の管理」ウィンドウで「新規作成」をクリック
- 「名前」(任意の文字)と「参照範囲」(=TEXTAFTER(GET.WORKBOOK(1), "]"))を入力して「OK」をクリック
- Excelのシートに戻って「名前」の関数を入力
手順こそやや複雑ですが、VBAの開発画面(VBE)を使わずに済むうえ、一度設定すればブックを再計算するたびに一覧が自動更新される点が最大の魅力です。
ここからは、Excelのマクロ関数を使って全てのシート名を一覧で取得する方法を、実際の画面を使いながらわかりやすく解説しています。
まずはマクロ関数をExcelに登録し、通常の関数のように使える状態に整えましょう。
Excelの「数式」タブをクリックしてください。
次に、「名前の管理」をクリックしてください。
「名前の管理」をクリックすると、「名前の管理」ウィンドウが表示されます。
その中にある「新規作成(N)...」をクリックしてください。
「新規作成(N)...」をクリックすると、「新しい名前」と書かれたウィンドウが表示されます。
その中で以下の項目を入力してください。
入力が終わったら「OK」をクリックしてください。
項目名 | 入力する値 | 説明 |
---|---|---|
名前(N) | sheetname | 関数として使用する名前。 短く、入力しやすい文字列推奨。 |
範囲(S) | ブック | この関数を適用する範囲。 初期値のままでOK。 |
コメント(O) | - | 後ほど見返すためのコメント。 関数に影響無し。 |
参照範囲(R) | =TEXTAFTER(GET.WORKBOOK(1), "]") | シート名を表示するマクロ関数。 |
「OK」をクリックすると、「新しい名前」と書かれたウィンドウが閉じられます。
「名前の管理」ウィンドウの「閉じる」をクリックしてください。
これでExcelファイル内のシート名を表示する関数が登録されました。
マクロ関数の登録が完了したら、最後にStep4で定義した「名前」を使い、実際にセルへ関数を記述していきましょう。
=sheetname
記述する関数はたったこれだけです。
この式を入力すると、Excelブック内のすべてのシート名が一覧で表示されます。
表示結果を縦にしたい場合は以下の関数を使用してください。
=TRANSPOSE(sheetname)
Excelのマクロを使って全シート名を一覧取得する方法
ここまでの方法でもExcelブック内の全シート名を一覧取得できますが、番外編としてマクロ関数を使った一覧取得の手順もご紹介します。
- ExcelのVBAの開発画面 (VBE) 開き(
Alt + F11
)、新しいモジュールを挿入します。 - 以下のコードを入力します。
Sub GetSheetNames()
Dim ws As Worksheet
Dim i As Integer
i = 1
For Each ws In ThisWorkbook.Sheets
Sheets(1).Cells(i, 1).Value = ws.Name
i = i + 1
Next ws
End Sub
- VBAの開発画面 (VBE)上の「▶(実行)」ボタンをクリック、または
F5
キーを押します。 - Excel画面に戻ると、アクティブなワークシートのA列にシート名が順番に表示されます。
Excelでシート名を一覧取得する3つの方法(イミディエイトウィンドウ、マクロ関数、VBA)のメリットとデメリット
紹介した3つの方法それぞれの手順におけるメリット・デメリットをわかりやすくまとめました。
イミディエイト ウィンドウで一覧表示
特徴
- 「開発」タブから開ける VBE(Visual Basic Editor) のイミディエイト ウィンドウに短いコードを入力し、シート名を一気に確認する方法です。
メリット
- 即時に一覧表示
入力したコードを実行すると、ワークブック内のシート名をすぐに表示できます。 - 追加の保存形式が不要
通常のExcelファイル(.xlsx)のままでも利用できるので、マクロ有効ブックに変換しなくてもOKです。 - コピーしやすい
表示されたシート名を、テキストとして簡単にコピーできます。
デメリット
- VBAの操作が前提
「開発者タブ」やVBEを開けない環境では使えません。 - 一時的な確認向き
定期的にシート名を管理するには、手間がかかるかもしれません。
Excelのマクロ関数で一覧取得
特徴
- レガシー機能の「GET.WORKBOOK」関数を利用して、ブック内のシート名をセルに並べて表示する方法です。
- VBAを使わずに済むので、マクロ禁止の職場でも許可されていれば利用できる場合があります。
メリット
- VBA不要
「マクロが使えない環境」でも、Excel4.0マクロが有効なら試せる可能性があります。 - 再計算で自動更新
一度設定すると、ブックを再計算するたびにシート名リストが最新状態に更新されます。 - 初期設定後は簡単
名前の管理で一度関数を登録すれば、シート上の数式だけで一覧取得が完結します。
デメリット
- 古い機能
Excel4.0マクロは正式には推奨されていないため、利用を制限している環境があります。 - 文字操作に工夫が必要
ブック名まで一緒に表示される場合があるため、別途関数(MIDやFIND)で切り出す手間が発生するかもしれません。
Excelのマクロ (VBA) で一覧取得
特徴
- Excelに組み込まれた VBA を使い、マクロを記述することでシート名を一覧化します。
- 「マクロ有効ブック(.xlsm)」として保存し、ボタン1つで実行できるようにするなど、自由度が高い方法です。
メリット
- 強力な自動化
シート名の一覧以外にも、追加の処理を連動させるなど多彩な応用が可能です。 - 何度でも実行できる
マクロを一度組めば、必要なタイミングでいつでもシート名を更新できます。 - 大幅な効率化
シートが膨大にあるファイルでも、一瞬でリスト化できます。
デメリット
- マクロ有効ブックの保存が必要
拡張子が「.xlsm」の形式となるため、会社のセキュリティポリシーによっては制限がある場合があります。 - VBAの知識が必要
コードを書く手間がかかり、エラーへの対処も含めて初心者には少し難しく感じることもあります。
Excelでシート名を一覧取得する方法に関するよくある質問と答え
Excelでシート名を一覧取得する方法に関するよくある質問と答えをまとめました。
基本設定や環境
イミディエイト ウィンドウを使ってExcelでシート名を一覧取得する方法について
マクロ関数を使ってExcelでシート名を一覧取得する方法について
VBAマクロを使ってExcelでシート名を一覧取得する方法について
その他Excelに関する記事
その他Excelに関する記事はこちらです。是非御覧ください。
-
エクセル(Microsoft Office Excel)
【Excel】画像をセルに埋め込む方法
こんな人にオススメの記事です 画像をセルの中に埋め込みたい人 セルの中に埋め込まれた画像を元に戻したい人 Excelでセルに画像を埋め込むと、セルの移動やサイズ変更... -
エクセル(Microsoft Office Excel)
【エクセル】ハイパーリンクを簡単に解除する方法
こんな人にオススメの記事です セルのハイパーリンクを削除(解除)したい人 入力した文字が自動的にハイパーリンクになる設定を解除したい人 エクセルで作業をしている... -
エクセル(Microsoft Office Excel)
【エクセル】自動計算されない場合の原因と対処法
こんな人にオススメの記事です エクセルの計算式が突然自動計算されなくなった場合 エクセルの計算式を自動計算したくない人 エクセルは普段は自動計算されていて、関数... -
エクセル(Microsoft Office Excel)
【Excel】「マクロの実行がブロックされました」と表示された場合の対処法
こんな人にオススメの記事です ダウンロードしたExcelのファイルを開いたら「セキュリティリスク このファイルのソースが信頼できないため、Microsoftによりマクロの実... -
エクセル(Microsoft Office Excel)
【Excel】破損したファイルを修復する方法
こんな人にオススメの記事です Excelのファイルがアプリの強制終了などで破損してしまった場合 Excelで日々の業務をこなしていると、「ファイルが開かない」「保存した... -
エクセル(Microsoft Office Excel)
【Excel】リボン(メニューバー)を常に表示する方法|デスクトップ版・Web版対応
こんな人にオススメの記事です Excelでリボン(メニューバー)が消えてしまい、戻し方がわからず困っている人 デスクトップ版だけでなくWeb版Excelでも同様の設定を行い... -
エクセル(Microsoft Office Excel)
xls(古いエクセル)からxlsx(新しいエクセル)に変換する方法
こんな人にオススメの記事です xls形式からxlsx形式に変換したい人 新しいエクセルファイルに変換したい人 古いエクセル形式(.xls)では行や列が不足している人 エクセ... -
エクセル(Microsoft Office Excel)
【Excel】シート名をセルに表示する関数
こんな人にオススメの記事です Excelのシート名を取得する関数を知りたい人 Excelを使っていると、シート名をセルに表示したい場面があります。 特に複数シートを使うテ... -
エクセル(Microsoft Office Excel)
エクセル(Excel)で作成したデータをワード(Word)に貼りつける方法7選
こんな人にオススメの記事です エクセルからワードに貼り付けると毎回形が崩れてしまう エクセルのデータを更新したらワードに貼り付けた表も自動的に更新されてほしい ...
最後までご覧いただきありがとうございました。
このサイトは情シスマンが半径3m以内のITに関する情報を掲載してるサイトです。
Windows系を主として、ソフトや周辺機器の操作や設定について画像も用いながらわかりやすく解説しています。
解説している内容に誤りがあった場合や、補足が必要な場合、もっと知りたい場合はこちらのお問い合わせフォームからご連絡ください。
個人の方を限定にサポートさせていただきます。
実行環境
Windows11 Home 24H2
64 ビット オペレーティング システム
11th Gen Intel(R) Core(TM) i7-11375H @ 3.30GHz 3.30 GHz
16.0 GB RAM
Microsoft 365
コメント