Share via


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

指定した回数だけ、一連のステートメントを繰り返します。

構文

カウンター=スタート終了の場合 [ ステップステップ ]
[ statements ]
[ Exit For ]
[ statements ]
次へ [ counter ]

For…Next ステートメントの構文には、次の指定項目があります。

パーツ 説明
counter 必須です。 ループ カウンターとして使用する数値変数を指定します。 この変数には、ブール値または配列要素を指定できません。
start 必須です。 counter の初期値を指定します。
end 必須です。 counter の最終値を指定します。
step 省略可能です。 ループを繰り返すたびに、counter の数が変更されます。 省略されると、step は既定値の 0 になります。
statements オプション。 指定した回数だけ実行される ForNext の間の 1 つ以上のステートメント。

注釈

step引数には、正または負の値を指定できます。 step 引数の値は、ループ処理を次のように決定します。

ループの実行条件
正の数または 0 カウンター<= end
負の値 カウンター>= end

ループ内のすべてのステートメントが実行されると、step の値が counter に加算されます。 この時点で、(ループを最初に実行した同じテストに基づいて) ループ内のステートメントが再び実行されるか、ループを抜け出して Next ステートメントの次のステートメントから実行が継続されます。

ヒント

ループ内で counter の値を変更すると、コードの解読とデバッグが困難になる可能性があります。

終了する別の方法として、任意の数の Exit For ステートメントをループ内の任意の場所に配置できます。 Exit For は、If..など、いくつかの条件を評価した後によく使用されます 。次に、 次の直後のステートメントに制御を転送します。

For...Next ループの内部に別の For...Next ループを入れて、For...Next ループをネストできます。 各ループには、counter として一意の変数名を指定してください。 以下に正しい構造を示します。

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

注:

Next ステートメントの counter を省略しても、実行はcounter が指定されているのと同様に継続されます。 対応する For ステートメントの前に Next ステートメントを指定すると、エラーが発生します。

この例では、 For..を使用します。次 のステートメントを使用して、数値 0 から 9 の 10 個のインスタンスを含む文字列を作成します。各文字列は 1 つのスペースで区切られます。 外側のループは、ループを通じて毎回デクリメントされるループ カウンター変数を使用します。

Dim Words, Chars, MyString 
For Words = 10 To 1 Step -1 ' Set up 10 repetitions. 
 For Chars = 0 To 9 ' Set up 10 repetitions. 
 MyString = MyString & Chars ' Append number to string. 
 Next Chars ' Increment counter 
 MyString = MyString & " " ' Append a space. 
Next Words 

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。