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

