大量のExcelブックから、ブック名とシート名の一覧をまとめて取得して一つの表にまとめる必要がありました。外部ツールを使わず、Excelに標準で備わっている VBA(Visual Basic for Applications)の即時ウィンドウ だけで短時間に完了させた方法を紹介します。
やることの全体像
VBAの即時ウィンドウに数行のコードを貼り付けて実行すると、開いているブックの全シート名が一瞬で表示されます。あとは表示結果をコピーして、メモ帳やExcelにまとめるだけです。
メリットは、マクロをファイルに保存する必要がないこと。一時的な作業であれば、マクロ有効化の警告や保存時の心配が要りません。
手順1. 対象のExcelブックを開く
シート名一覧を取得したいExcelブックを開きます。このブックが「アクティブ」な状態(前面に表示されている状態)である必要があります。
手順2. VBAエディターを開く
キーボードで Alt + F11 を押すと、VBAエディターが開きます。
手順3. 即時ウィンドウを表示する
VBAエディター内で Ctrl + G を押すと、画面下部に「即時ウィンドウ(Immediate Window)」が表示されます。ここにコードを打ち込むと、その場で実行できます。
手順4. コードを貼り付ける
即時ウィンドウに、次のコードを1行で貼り付けます。
For Each objSheet In ActiveWorkbook.Sheets: Debug.Print ActiveWorkbook.Name, objSheet.Name: Next
このコードは「開いているブック(ActiveWorkbook)内の全シートを順番に見ていき、ブック名とシート名を表示する(Debug.Print)」という意味です。
手順5. 実行する
コードを貼り付けたら Enterキー を押します。即時ウィンドウに、以下のような結果が表示されます。
売上管理.xlsx 売上1月 売上管理.xlsx 売上2月 売上管理.xlsx 売上3月 (…以降、シートの数だけ続く…)
「ブック名 シート名」がシートごとに1行ずつ出力されるので、ブック内のシート一覧が一目でわかります。
手順6. 結果をコピーしてまとめる
即時ウィンドウ内をクリックして Ctrl + A(全選択)→ Ctrl + C(コピー)を押し、メモ帳やExcelの新しいシートに Ctrl + V で貼り付けます。
次のブックも処理する場合は、Alt + Tab でExcelに戻ってブックを開き直し、手順2〜6を繰り返します。慣れると1ブックあたり15秒ほどで処理できます。
補足:コピーした結果に空行が混ざる場合
即時ウィンドウからのコピーでは、最後に空行が入ることがあります。空行だけ消したい場合は、メモ帳の置換(Ctrl + H)で「空の行」を検索し、置換後の文字列を空欄にして全置換すればまとめて削除できます。
まとめ
- Alt + F11 でVBAエディターを開く
- Ctrl + G で即時ウィンドウを表示
- 上記のコードを貼り付けて Enter で実行
- 結果をコピーしてまとめる
シート名の一覧作成が発生したら、この方法なら外部ツールなしで一瞬で終わらせられます。


コメント