アクセス上位ページ
 
最近の更新内容
(5)-c.繰り返し処理 For … Next ⇐ [PREV]
[NEXT] ⇒ (5)-e.繰り返し処理 Do … Loop

Excel VBA ≫ 1.基礎編 - 制御構文(5)-d.繰り返し処理 For Each … Next

For Each … Next

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

【構文】
For Each [要素] In [配列またはコレクション]
    処理
Next [要素]




  • 配列に対して使用する例
  • 配列に対して使用する場合、要素は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
    
    ⇒ サンプルマクロ集 へ

    <実行結果(イミディエイトウィンドウ)>
    10
    25
    0
    50
    95
    


  • コレクションに対して使用する例
  • コレクションに対して使用する場合、要素はコレクションと同じオブジェクトで定義しておきます。

    以下の例では、ワークシートコレクション(Worksheets)に対して繰り返し処理を行うので、 要素はワークシートオブジェクト(Worksheet)で定義しています。
    Sub sample5_8()
        Dim elm             As Worksheet
    
        'シート名をすべて表示します。
        For Each elm In Worksheets
            Debug.Print elm.Name    'シート名を表示
        Next elm
    End Sub
    
    ⇒ サンプルマクロ集 へ

    <実行結果(イミディエイトウィンドウ)>
    ※ワークブックの中にSheet1〜3がある場合
    Sheet1
    Sheet2
    Sheet3
    


ループを途中で終了する

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

<サイト内関連リンク> 関連リンクもチェック!!
- "Exit For"の使用例
カテゴリ内ページ



Page
Top