Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Excel VBA】すべてのシート名を取得する方法(一覧表示・ループ処理)

Excel VBAでは、
すべてのシート名を取得する処理がよく使われます。

例えば👇

  • シート一覧を作る

  • 自動処理の対象を確認

  • ログ出力

この記事では、シート名を取得する方法を初心者向けに解説します。


基本:For Each で取得する

最もよく使う方法はこちらです。

 
Sub GetSheetNames()

    Dim ws As Worksheet

    For Each ws In Worksheets
        Debug.Print ws.Name
    Next ws

End Sub


実行結果

 
Sheet1
Sheet2
売上
データ


シート名をセルに出力する

一覧としてExcelに出したい場合👇

 
Sub OutputSheetNames()

    Dim ws As Worksheet
    Dim i As Long

    i = 1
    For Each ws In Worksheets
        Cells(i, 1).Value = ws.Name
        i = i + 1
    Next ws

End Sub


結果

A列
Sheet1
Sheet2
売上

Sheets を使う場合

 
For Each sh In Sheets
    Debug.Print sh.Name
Next sh

👉 グラフシートも含まれる


よくある使い方

特定の名前を探す

 
If ws.Name = "売上" Then
    MsgBox "見つかりました"
End If


注意点

シート名は一意

同じ名前のシートは作れません。


まとめ

シート名を取得する基本はこれです。

 
For Each ws In Worksheets
    Debug.Print ws.Name
Next ws