エクセルのシート名をシートに書き出す方法です。
シートの種類
- Sheets:すべてのシート、グラフシート等も含む
- Worksheets:ワークシート
- Charts:グラフシート
目次
シートの数を指定する場合
ワークブックに存在している3つのワークシートを書き出す方法です。
例:ワークブックに3つワークシートのみある場合
以下は書き出し結果です。
サンプルコードです。For~Nextステートメントで全てのシート名を書き出します。
Sub sample1_1() Dim i As Long With ThisWorkbook For i = 1 To 3 Cells(i, 1) = sheets(i).Name Next i End With End Sub
省略した場合
Sub sample1_2() Dim i As Long For i = 1 To 3 Cells(i, 1) = sheets(i).Name Next i End Sub
シートの数に変動のある場合
ワークブックにシートを書き出す方法で、シート数は変動する場合です。
例:ワークブックに以下のシートがある場合
- 一覧:シート
- テスト1:ワークシート
- テスト2:ワークシート
- テスト3:ワークシート
- グラフ1:グラフシート
ワークシートのみの書き出し
サンプルコード(省略コード)
Sub sample2_1() Dim i As Long For i = 1 To Worksheets.Count Cells(i, 1) = Worksheets(i).Name Next i
- 3行目[Worksheets.Count]:シート数を取得し、シートの数だけくりかえし処理をします
- 4行目[Worksheets(i).Name]:シート名を取得します。
3行目を「Sheets.Count」にした場合は、グラフシートも含むシートのカウントを実行するので、4行目の「Worksheets(i).Name」でエラーが起こります。
シートの書き出し
グラフシートも含むシートの書き出しです。
Sub sample2_2() Dim i As Long For i = 1 To Sheets.Count Cells(i, 1) = Sheets(i).Name Next i End Sub
グラフシートの書き出し
グラフシートのみの書き出しです。
Sub sample3() Dim i As Long For i = 1 To Charts.Count Cells(i, 1) = Charts(i).Name Next i End Sub