繰り返し処理 For Each … Next の使用方法

配列コレクション(1つ以上の同一オブジェクトの集まり)の各要素に対して処理を繰り返す場合は For Each … Next ステートメントを使用します。

構文
For Each [要素] In [配列またはコレクション]
    処理
Next [要素]
スポンサーリンク

For Eachループの使用例

配列をループ処理する例

For Eachループを配列に対して使用する例です。配列に対して使用する場合、要素(以下サンプルの elm)はVariantで定義するか変数の型を省略しておきます。
実行結果はイミディエイトウィンドウに表示されるので、事前に表示させておいてください。

Sub sample5_7()
    Dim Points(1 To 5)  As Integer
    Dim elm             As Variant

    Points(1) = 10
    Points(2) = 25
    Points(3) = 0
    Points(4) = 50
    Points(5) = 95

    '配列の内容をすべて表示します。
    For Each elm In Points
        Debug.Print elm
    Next elm
End Sub

コレクションをループ処理する例

コレクションに対して使用する場合、要素(以下サンプルの elm)はコレクションと同じオブジェクトで定義しておきます。

この例では、ワークシートコレクション(Worksheets)に対して繰り返し処理を行うので、要素はワークシートオブジェクト(Worksheet)で定義しています。

Sub sample5_8()
    Dim elm             As Worksheet

    'シート名をすべて表示します。
    For Each elm In Worksheets
        Debug.Print elm.Name    'シート名を表示
    Next elm
End Sub

ループを途中で終了する

For Each…Next ステートメントを途中で終了したい場合は For…Next ステートメントと同様に Exit For ステートメントを使用します。

 For…Next ループを途中で終了する

タイトルとURLをコピーしました