エクセルブックにある全てのワークシート名を取得する方法を説明します。
シート名を取得する。
ワークシート名はNameプロパティを利用して取得可能です。
具体的には、ブック内の3番目のシート名を取得する場合は次のようにします。
変数=Worksheets(3).Name
コードを実行して確認します。
この下のエクセルファイルの3番目のシート(Sheet3)の名前を取得します。

コード
Sub nameget() Dim wsName As String wsName = Worksheets(3).Name MsgBox (wsName) End Sub
動作結果

3番目のシート名”Sheet3″を取得できました。
全てのシート名を取得する
Nameプロパティを利用してエクセルブック内のシート名をすべて取得する方法です。
Sub 名前を全て取得する() Dim wsName() As String Dim wsNum As Long: wsNum = 0 Dim ws As Worksheet Dim i As Long: i = 1 Dim allName As String For Each ws In Worksheets wsNum = wsNum + 1 Next ReDim wsName(1 To wsNum, 1 To 1) For Each ws In Worksheets wsName(i, 1) = ws.Name i = i + 1 Next For i = 1 To wsNum ’以下は取得した名前を表示させるための部分 If i = 1 Then allName = wsName(i, 1) Else allName = allName & vbCrLf & wsName(i, 1) End If Next MsgBox allName End Sub
このコードでは最初にワークシート数を数え、シート数に応じた配列を再定義し、そこに取得した名前を格納しています。
非表示になっているシートの名前も取得できます。
コメント