VBA

VBA For ~ Next 문으로 반복 실행하기

꼰대 부장 2025. 2. 28. 21:53

For Next 문은 VBA에서 반복문을 실행할 때 사용하는 기본적인 제어 구조 중 하나야. 특정 범위 내에서 코드를 반복 실행할 수 있도록 도와줘서, 많은 양의 데이터를 다룰 때 매우 유용합니다.

 1. For Next 문의 기본 구조

For Next 문은 기본적으로 다음과 같은 구조를 가지고 있습니다.

For 변수 = 시작값 To 종료값 [Step 증가값]
    ' 반복할 코드
Next 변수

 

  • 변수 → 반복을 제어하는 변수(루프 카운터)
  • 시작값 → 루프가 시작되는 값
  • 종료값 → 루프가 종료되는 값 (이 값을 넘으면 루프가 종료됨)
  • Step 증가값 → 생략하면 기본적으로 1씩 증가하지만, 필요하면 다른 값으로 지정할 수 있음

 2. 기본 예제: 1부터 10까지 숫자 출력하기

다음은 1부터 10까지 숫자를 출력하는 VBA 코드입니다.

Sub ForNextExample1()
    Dim i As Integer
    For i = 1 To 10
        Debug.Print i '즉각 창(Immediate Window)에 출력
    Next i
End Sub

 

 

이 코드를 실행하면 아래와 같이 1부터 10까지 숫자가 출력됩니다.

1
2
3
4
5
6
7
8
9
10

 

3. Step을 활용한 반복문 

Step을 활용하면 숫자를 증가시키는 간격을 조정할 수 있습니다. 예를 들어, 1부터 10까지 2씩 증가하면서 출력하고 싶다면 아래와 같이 작성하시면 됩니다.

Sub ForNextExample2()
    Dim i As Integer
    For i = 1 To 10 Step 2
        Debug.Print i
    Next i
End Sub

 

실행 결과는 아래와 같습니다.

1
3
5
7
9

 

4. Step을 음수로 사용하기 (역순 반복) 

Step 값을 음수로 주면 역순으로 반복할 수도 있습니다.
예를 들어, 10부터 1까지 거꾸로 출력하는 코드를 작성 하면..

Sub ForNextExample3()
    Dim i As Integer
    For i = 10 To 1 Step -1
        Debug.Print i
    Next i
End Sub

 

실행 결관느 아래와 같습니다.

10
9
8
7
6
5
4
3
2
1

 

5. 특정 범위의 셀에 값을 입력하는 예제 

For Next 문을 활용하면 엑셀 시트의 특정 범위에 데이터를 입력할 수도 있습니다.

예를 들어, A1부터 A10까지 1부터 10까지의 숫자를 입력하는 코드를 만들어 보면...

Sub ForNextExample4()
    Dim i As Integer
    For i = 1 To 10
        Cells(i, 1).Value = i ' A열의 i번째 행에 i 값 입력
    Next i
End Sub

 

이 코드를 실행하면 A1부터 A10까지 1부터 10까지 숫자가 자동으로 입력될 됩니다.

 

6. 다중 루프 (중첩된 For Next 문) 

or Next 문을 중첩해서 2차원 배열처럼 사용할 수도 있습니다.
예를 들어, A1:C5 범위에 행 번호와 열 번호를 조합한 데이터를 입력해보면....

Sub ForNextExample5()
    Dim i As Integer, j As Integer
    For i = 1 To 5 ' 행 반복
        For j = 1 To 3 ' 열 반복
            Cells(i, j).Value = "R" & i & "C" & j
        Next j
    Next i
End Sub

 

이 코드를 실행하면 아래와 같이  A1:C5 범위에 R1C1, R1C2 같은 값이 채워집니다.

 

7. For Next 문과 If 조건문 활용 

For Next 문 안에서 If 문을 활용하면 특정 조건에 맞는 데이터만 선택적으로 처리할 수도 있습니다.

예를 들어, 1부터 10까지 숫자 중에서 짝수만 출력하는 코드를 작성해 보면...

Sub ForNextExample6()
    Dim i As Integer
    For i = 1 To 10
        If i Mod 2 = 0 Then ' 짝수 판별
            Debug.Print i
        End If
    Next i
End Sub

 

결과는 아래와 같습니다.

2
4
6
8
10

 

8. For Next 문에서 루프 중단하기 (Exit For) 

가끔 특정 조건이 만족되면 루프를 중단해야 할 때가 있습니다.
예를 들어, 1부터 10까지 반복하다가 5가 나오면 루프를 중단하는 코드를 만들어 보면...

Sub ForNextExample7()
    Dim i As Integer
    For i = 1 To 10
        Debug.Print i
        If i = 5 Then Exit For ' 5가 나오면 반복 종료
    Next i
End Sub

 

결과는 아래와 같습니다.

1
2
3
4
5

 

Exit For를 사용해서 5가 나오면 루프를 빠져나옵니다.

 

9. 결론 

For Next 문은 VBA에서 가장 기본적이면서도 강력한 반복문입니다.
활용 방법을 잘 익혀두면 데이터 처리, 자동화 작업 등에 큰 도움이 됩니다.

오늘의 주요 내용:

  • For Next 문의 기본 구조
  • Step을 활용한 증가 및 감소 반복
  • 특정 범위의 셀에 값 입력하기
  • 중첩된 For Next 문 활용
  • If 문과 Exit For를 활용한 제어

'VBA' 카테고리의 다른 글

VBA Do ~ While 문으로 반복  (0) 2025.03.07
VBA For Each.... Next 문  (0) 2025.03.05
VBA Selet Case 문 사용법 및 예제  (0) 2025.02.15
엑셀(Excel) VBA GoTo 문으로 이동하기  (0) 2025.02.09
엑셀(Excel) VBA IF 문 함수  (0) 2025.02.09