For...Next ステートメント
ループ カウンターが最終的な値に近づく間に 、ステートメント のグループを繰り返します。
構文
カウンター=スタート終了の場合 [ ステップステップ ]
[ statements ]
[ Exit For ]
[ statements ]
次へ [ counter ]
For…Next ステートメントの構文には、次の指定項目があります。
指定項目 | 説明 |
---|---|
counter | 必須です。 ループ カウンターとして使用する数値変数を指定します。 この変数には、ブール値または配列要素を指定できません。 |
start | 必須です。 counter の初期値を指定します。 |
end | 必須です。 counter の最終値を指定します。 |
step | 省略可能。 ループを繰り返すたびに、counter の数が変更されます。 省略されると、step は既定値の 0 になります。 |
statements | 省略可能。 指定した回数だけ実行される For と Next の間の 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 のサポートおよびフィードバックを参照してください。