For Each … Next文

配列またはコレクション内の各要素に対して文のグループを繰り返します。

構文

For Each element In group
  [statements]
  [Exit For]
  [statements]
Next 

引数:

  • element: コレクションまたは配列の要素の反復に使用される変数。コレクションの場合、要素はバリアント変数、汎用オブジェクト変数または特定のAutomationオブジェクト変数のみとなります。配列の場合、要素はバリアント変数のみとなります。

  • group: オブジェクト・コレクションまたは配列の名前。

  • statements: グループ内の各アイテムに対して実行される1つ以上の文。

備考

グループ内に少なくとも1つの要素がある場合は、For Eachブロックに入ります。ループに入ると、ループ内のすべての文がグループの最初の要素に対して実行されます。グループ内にさらに要素がある場合、ループ内の文は各要素に対して引き続き実行されます。グループ内のさらなる要素がなくなると、ループは終了し、Next文に続く文の実行が続行されます。

Exit Forは、For Each...NextまたはFor...Next制御構造内でのみ使用でき、終了する別の方法を提供します。ループ内の任意の場所に任意の数のExit For文を配置できます。Exit Forは多くの場合、なんらかの条件(If...Thenなど)の評価で使用され、Nextの直後の文に制御を移します。

For Each...Nextループを別のループ内に配置することで、For Each...Nextループをネストできます。ただし、各ループ要素は一意である必要があります。

Note:

Next文で要素を省略すると、その要素を含めたかのように実行が続行されます。対応するFor文の前にNext文が検出されると、エラーが発生します。

次の例は、For Each...Next文の使用方法を示しています:

例1:

Dim fruits(2)
fruits(0) = "Apple"
fruits(1) = "Banana"
fruits(2) = "Cherry"
For Each fruit In fruits
    ' Variable fruit denotes each element in fruits array
Next