Excel表のシート名一覧を取得する方法👍

Excel VBA コード マクロ 関数 時短

t f B! P L

仕事の作業を簡略化したく、エクセルのシート名一覧を作る必要があったので、調べた結果を残します😊


エクセル関数を使ってシート名を取得する方法

シート名を取得する方法としては、↓のようにエクセルの関数で各シート毎に取得して、集計する方法もあるようです。

エクセル シート名を取得する
【Excel講座】シート名をCELL関数で取得してブック内の目次作成方法
ですが、個人的には各シートには影響を与えずにシート一覧が取得したかったので、マクロを使うことにしました😁👍

マクロ(VBA)を使ってシート名を取得する方法

一時的に分かれば良いだけの時

あくまで今のシート一覧を作れれば良いという場合は、VBAのデバックでよく使う、イミディエイトウィンドウを使って、取得する方法があるようです。

  1. ALT+F11でマクロのエディタを起動
  2. イミディエイトウインドウの表示を確認(表示されてなければ、Ctrl+Gで表示)
  3. イミディエイトウインドウの枠内に下記入力してEnter
  4. For Each i In ThisWorkbook.Sheets: debug.print i.name : next i
    
  5. ウィンドウの下にシート名一覧が表示
  6. コピーして張り付けたいセルに貼り付け

以上!

一時的に取得したいだけであれば、かなり便利な方法です✨

何度も取得する必要がある時

更新する度に一覧が欲しいこともあるので、ココではマクロを組んで、更新の都度など何度も一覧を作るときに便利な方法を記述します。

基本的には、forでループさせてすべてのシートを循環し、Nameでシート名を取得する簡単なマクロです!

 Sub シート名一覧取得()

 Dim i As Long
 For i = 1 To Worksheets.Count - 1
     Cells(2, i) = Worksheets(i).Name
 Next
 
 End Sub

以上!

あとは、一覧を記入したいセルを選択して、マクロを実行するだけで一覧が取得できます😁✨

因みに、今回は行(横)方向に一覧を作りましたが、列(縦)方向に出力したい場合は、

Cells(2, i)のところを、Cells(i, 任意の数)にすれば列方向に一覧が作れます👍

また、Worksheets.Count - 1としていますが、最後の-1は今回出力するシートが一番最後にしているので、-1することで最後のシートの名称を抽出しないためにつけています。一番最初のシートに一覧表をつけて、一番最初のシート名を抽出したくない場合は、
 Sub シート名一覧取得()

 Dim i As Long
 For i = 2 To Worksheets.Count
     Cells(2, i) = Worksheets(i).Name
 Next
 
 End Sub
に変更すると2シート目以降全てのシート名の一覧ができます。

参考

EXCEL 全シート名を取得し一覧に!VBAを利用して一瞬で解決
Excel マクロシート名一覧を作成する~Excel 2013 マクロ講座

Profile

自分の写真
Japan
茨城県で生まれ育ち、千葉県、愛知県、岐阜県を経由して、今に至る妻子持ちのオッサンです。 基本手抜きが大好きで、どうすれば定常作業の手抜きができるのか?を悶々と考え続けてます(・_・;)

このブログを検索

QooQ

Blogger