For...Next 사용

For...Next 명령문을 사용하여 특정 횟수만큼 명령문 블록을 실행할 수 있습니다. 루프의 경우 루프가 반복될 때마다 값이 증가하거나 감소하는 카운터 변수를 사용합니다.

다음 예에서는 MyProc라는 프로시저가 50회 실행되도록 합니다. For 명령문은 카운터 변수 x와 해당 시작 및 종료 값을 지정합니다. Next 명령문은 카운터 변수를 1씩 증가시킵니다.

다음 예에서는 for next 루프의 사용을 보여줍니다.

예 1:

Sub DoMyProc50Times()
   Dim x
   For x = 1 To 50
      'This loop executes 50 times
   Next
End Sub

Step 키워드를 사용하여 지정한 값만큼 카운터 변수를 늘리거나 줄일 수 있습니다. 다음 예에서는 루프가 반복될 때마다 카운터 변수 j가 2씩 증가합니다. 루프가 완료되면 합계는 2, 4, 6, 8 및 10입니다.

예 2:

Sub TwosTotal()
Dim j, total
    total = 0
    For j = 2 To 10 Step 2
        total = total + j
    Next
 'The total is 30
End Sub

카운터 변수를 줄이려면 음수 단계 값을 사용합니다. 시작 값보다 작은 종료 값을 지정해야 합니다. 다음 예에서는 루프가 반복될 때마다 카운터 변수 myNum가 2씩 감소합니다. 루프가 완료되면 총합은 16, 14, 12, 10, 8, 6, 4, 2의 합계입니다.

예 3:

Sub NewTotal()
   Dim myNum, total
    total = 0
    For myNum = 16 To 2 Step -2
        total = total + myNum
    Next
    'The total is 72
End Sub

카운터는 Exit For 명령문을 사용하여 종료 값에 도달하기 전에 For...Next 명령문을 종료할 수 있습니다. 일반적으로 오류가 발생할 때와 같은 특정 상황에서만 종료하려는 것이므로 If...Then...Else 명령문의 True 명령문 블록에 있는 Exit For 명령문을 사용해야 합니다. 조건이 False이면 루프가 평소처럼 실행됩니다.

예 4:

Sub ExitForExample()
        Dim i, total
        total = 0
        For i = 1 To 10
                        total = total + i
                 If i = 5 Then Exit For
        Next
        'Exited loop early. Total is 15
End Sub

예 5:

Sub DecreaseWithExit()
        Dim n, sum
        sum = 0
        For n = 20 To 0 Step -2
                        sum = sum + n
                        If n = 10 Then Exit For
        Next
         'Exited loop early. sum is 90
End Sub