
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