Sheets コレクションのループ
このサブプロシージャ (Sub
) は、Excel ワークブック内のシートをループし、それぞれのシート名をデバッグ出力ウィンドウに表示します。以下にコードの各部分の詳細な説明を示します。
Sub LoopSheetsCollection()
With ThisWorkbook
Dim sh As Object
' すべてのシートをループしてシート名を表示する
For Each sh In .Sheets
Debug.Print sh.Name
Next sh
' すべてのワークシートをループしてシート名を表示する
For Each sh In .Worksheets
Debug.Print sh.Name
Next sh
Dim i As Long
' シートのインデックス番号を使用してシート名を表示する
For i = 1 To .Sheets.Count
Debug.Print Sheets(i).Name
Next i
End With
End Sub
詳細な説明
Sub LoopSheetsCollection()
- これは、
LoopSheetsCollection
という名前のサブプロシージャの開始を示します。
- これは、
With ThisWorkbook
ThisWorkbook
は、このコードが含まれているブックを指します。With
ステートメントを使って、以降のコードブロック内でThisWorkbook
を参照しやすくします。
Dim sh As Object
- 変数
sh
をObject
型として宣言します。これは、後でシートオブジェクトを保持するために使用されます。
- 変数
For Each sh In .Sheets
- すべてのシートをループします(ワークシート、チャートシートなど、すべての種類のシートを含む)。
Debug.Print sh.Name
- 各シートの名前をデバッグ出力ウィンドウに表示します。
Next sh
For Each
ループを終了します。
For Each sh In .Worksheets
- すべてのワークシートをループします(チャートシートを除く)。
Debug.Print sh.Name
- 各ワークシートの名前をデバッグ出力ウィンドウに表示します。
Next sh
For Each
ループを終了します。
Dim i As Long
- 変数
i
をLong
型として宣言します。これは、後でシートのインデックスを保持するために使用されます。
- 変数
For i = 1 To .Sheets.Count
- シートの数だけループします(シートのインデックスは 1 から始まるため)。
Debug.Print Sheets(i).Name
- 各シートの名前をデバッグ出力ウィンドウに表示します。
Next i
For
ループを終了します。
End With
With
ステートメントを終了します。
End Sub
- サブプロシージャの終了を示します。
概要
このサブプロシージャは、Excel ワークブック内のすべてのシートとワークシートをループし、それぞれのシート名をデバッグ出力ウィンドウに表示します。異なるループ構造を使用して、シートコレクション全体(Sheets
)とワークシートコレクション(Worksheets
)を個別に処理し、シートのインデックスを用いて同様の処理を行います。