For Nextの使い方と途中で抜ける方法(Stepとネストの使用例):Access VBA入門

For Nextとは、指定した初期値から最終値まで繰り返して処理(ループ処理)を行うことができる命令です。

途中でループを抜けるには、Exit Forを使います。

構文:
For カウンタ変数 = 初期値 To 最終値 [Step 増分]
 …
 [Exit For]
Next [カウンタ]
  • [Step 増分]は省略できます。省略すると増分は1になります。
  • [カウンタ]は省略できます。
BackHome BackVBA入門


● For Nextの使用例

下がもっとも基本的な使用例です。
For Next内の処理の書き方は、通常下のように字下げしル-プ内の処理であることが分かるようにします。
このように同列の処理を字下げすることで、プログラムが見やすくなりデバッグもやり易くなります。
For Nextの基本的な使用例
  • カウンタ変数iに初期値5をセットし、最終値の5になるまでループします。 なので5回処理を行うことになります。
  • 実行すると、イミディエイトウィンドウでカウンタ変数iが1から5になっているのが分かります。
Sub MyForNext()
    Dim i As Long
    
    For i = 1 To 5
        Debug.Print i
    Next
End Sub

実際の使い方は、下のようにFor Next内で処理を行います。
For Next内で処理を行う

1から10までを足し算させています。
j=1+2+3+ … + 10になります。
10までならいいですが、例えば1000まで足し算させるとなると、For Nextのようなループ処理が使えないと大変になってしまいます。

Sub MyForNext()
    Dim i As Long
    Dim j As Long
    
    j = 0
    For i = 1 To 10
        j = j + i
    Next
    
    Debug.Print j
End Sub

● Stepの使用例

Stepは下のように増分が指定できます。
Stepの使用例

増分は2に指定しているので、カウンタ変数iは1~3~5になります。
なので3回ループします。

もしStep 6に指定した場合、カウンタ変数iは1~6になるので、ループは1回になります。

Sub MyForNext()
    Dim i As Long
    
    For i = 1 To 5 Step 2
        Debug.Print i
    Next
End Sub

下のように増分にマイナスを指定することもできます。
Stepにマイナスを指定する

増分を-1に指定しているので、カウンタ変数iは5から-1ずつ減算されます。

Sub MyForNext()
    Dim i As Long
    
    For i = 5 To 1 Step -1
        Debug.Print i
    Next
End Sub

● For Nextから途中で抜ける方法

途中で抜けるには、ループ内にExit Forを挿入します。
For Nextから途中で抜ける方法

IF文を使用し、カウンタ変数iが2を超えたらループを抜けるようにしています。

Sub MyForNext()
    Dim i As Long
    
    For i = 1 To 5
        If i > 2 Then
            Exit For
        End If
        Debug.Print i
    Next
End Sub

● ネストの使用例

ネストとは入れ子の事で、下のようにFor Nextの中にさらにFor Nextを入れているような構造のことです。
ネストの使用例

カウンタ変数iが1回ループする間に、カウンタ変数jは3回ループすることになります。

Sub MyForNext()
    Dim i As Long
    Dim j As Long
    
    For i = 1 To 3
        For j = 101 To 103
            Debug.Print i & " - " & j
        Next
    Next
End Sub

BackHome BackVBA入門

Copyright(C) FeedSoft