Excelのシート名を一括で取得するVBAのサンプルコードを紹介します。
2つの方法を紹介してみます。
通常マクロ版
仕様
画面仕様
マクロを実行したときにシート名をセルに吐き出します。
ソースコード
実行中のワークブックのシート数分ループして、一番左のシートのセルの1列目にシート名を出力していっているだけです。
Sub viewSheet()
For Each i In ThisWorkbook.Sheets
ThisWorkbook.Sheets(1).Cells(i.Index, 1) = i.Name
Next i
End Sub
テスト実行
下記の通り、VBEを開き、上のソースコードを張り付けます。
F5キーを押下すると下記の画面が出てくるので、Subプロシージャを選択して「実行」ボタンを押下します。
下記の通り、シート名が出力されました。
イミディエイトウィンドウ版
イミディエイトウィンドウを使用すると、シートを汚さずにシート名を出力できます。
ソースコード
ソースコードの内容は先ほどのソースコードとほぼ同じなのですが、イミディエイトウィンドウの場合は1行で実行しなければならないので、コロンで区切って1行に処理をまとめている点が異なります。
また、シート名をイミディエイトウィンドウ内に出力したいので、debug.Printを使用するように細かい変更をしています。
For Each i In ThisWorkbook.Sheets : debug.Print i.Name : Next i
テスト実行
それでは実行していきます。まずはイミディエイトウィンドウを開きます。
イミディエイトウィンドウがVBE画面にない場合は、Ctrl+Gとキーを押下することで表示できます。
それから上記のソースコードを入力してエンターキーを押下します。
実行前
エンターキーを押下するとイミディエイトウィンドウ内にシート名が列挙されていきます。
実行後
参考情報
環境
下記の環境で作成・実行しております。
No. | 環境 | バージョン |
---|---|---|
1 | OS | Windows10 |
2 | Excel | Excel2016 |
以上です。
コメント