VBA Excel の 全シート名を取得するる
Excelで全てのシート名を取得して、
イミディエイトウィンドウに出力する。
こんなExcel。
※だいぶ前にここで書いた内容の応用(そのまんまなんだが。。)
Excel VBA 複数シートをループして処理する
VBA ソース
VBA画面を開いて、標準モジュール追加
※Excel画面で[alt]キー+[F11]キーで開けます。
んで下記ソース書き込む(コピペ)
'********************************** 'VBAの実行結果には、責任取りません。 '使用時は自己責任でお願いします。(まぁ、なんも起きんと思うけど。。) '********************************** Public Sub SheetName() '全シート分ループ For Each oSheet In ThisWorkbook.Sheets ' イミディエイトウィンドウに出力 Debug.Print oSheet.Name Next oSheet End Sub
【実行結果】
ちなみに、イミディエイトウィンドウが表示されてない場合は、
メニューから、[表示]-[イミディエイトウィンドウ]で表示できます。
イミディエイトウィンドに直接ソースを記載する
毎回、標準モジュール追加して(またはフォームでボタンを配置して)って面倒なので、
イミディエイトウィンドに貼り付けて実行できるように、ちょっとソースを修正してみる。
こんな感じ。
For Each oSheet In ThisWorkbook.Sheets: Debug.Print oSheet.Name: Next oSheet
命令単位で「:」で区切るのがおまじない。
また、改行は「_」で、標準出力の「Debug.Print」は「?」で代替できます。
上記を考慮して、修正してみる。
For Each oSheet In ThisWorkbook.Sheets: _ ?oSheet.Name: _ Next oSheet
実際の貼り付けイメージ
【実行結果】
んな感じ。
ちなみに、ファイルに出力するってソースにすると、
Public Sub SheetName() Open "d:\test.txt" For Append As #1 For Each oSheet In ThisWorkbook.Sheets Debug.Print oSheet.Name Print #1, oSheet.Name Next oSheet Close #1 End Sub
自己責任で。