For...Next ステートメント

指定された回数だけ、一連のステートメントを繰り返すフロー制御ステートメントです。

For counter = start To end [Step step]
    [statements]
    [Exit For]
    [statements]
Next

引数

  • counter
    ループ カウンタに使う数値変数を指定します。この変数には、配列やユーザー定義型の要素は指定できません。
  • start
    counter の初期値を指定します。
  • end
    counter の最終値を指定します。
  • step
    ループを繰り返すごとに counter に加算される値を指定します。step を省略すると、ループを繰り返すごとに counter に 1 が加算されます。
  • statements
    ループ内で実行される一連のステートメントを指定します。For と Next の間にこれらのステートメントを記述します。ここに記述したステートメントは、For...Next で指定した回数だけ実行されます。

解説

step には正の数または負の数を指定できます。step で指定した値によりループの実行は次のように制御されます。

実行条件
正の数または 0 counter <= end
負の数 counter >= end

プログラムの実行がループに移り、ループ内の一連のステートメントがすべて実行されると、step の値が counter に加算されます。この時点で終了条件が満たされていない場合は、ループ内のステートメントが再び実行されます。終了条件が満たされている場合は、ループから抜け出して Next ステートメントの次のステートメントに制御が移ります。

メモ ループ内で counter の値を変えると、プログラムの処理内容の理解やデバッグが困難になるため注意してください。

Exit For ステートメントは、制御構造 For Each...Next または For...Next ループ内でのみ使用できます。Exit For ステートメントを使用すると、指定した回数以外の条件で For...Next ループを終了させることができます。Exit For ステートメントは、For Each...Next ループまたは For...Next ループ内の任意の位置で何回でも使用できます。Exit For ステートメントは、条件の評価 (たとえば If...Then ステートメントなど) と共に使用されることが多く、Next の直後のステートメントに制御を渡します。

For...Next ループはネスト (入れ子) 構造にすることができます。つまり、For...Next ループの内部に別の For...Next ループを入れることができます。ループをネスト (入れ子) させる場合は、それぞれの counter に別の変数名を指定してください。正しいステートメントの例を次に示します。

For I = 1 To 10
      For J = 1 To 10
            For K = 1 To 10
            . . .
            Next
      Next
Next

必要条件

バージョン 1

参照

Do...Loop ステートメント | Exit ステートメント | For Each...Next ステートメント | While...Wend ステートメント