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
自己責任で。
















