Excel VBA 기초

Excel VBA - For, Next

kwangpal 2023. 12. 2. 23:42
반응형

For, Next 사용하기

For, Next 문은 정해놓은 횟수동안 동일한 작업을 반복하는 것이다.

For와 Next는 세트로 사용한다.

 

Sub Button_Click()

    Dim i as Integer
    
    For i = 1 To 10
        Range("A" & i) = i + 1
    Next i

End Sub

 

위 코드는 i를 1에서 1까지 1씩 증가시키는 동안

A 컬럼의 i 번째 셀에 i + 1 을 계산해서 출력하라는 것이다.

실행하면 다음 결과를 얻게 된다.

 

 

위에서 Range("A" & i) 대신

Cells(i, 1) 을 써도 같은 결과를 얻게 된다.

 

 

For, Next 문 안에 For, Next 문이 들어갈 수도 있다.

2가지 변수의 조건을 변경하면서 반복 계산하게 된다.

 

Sub Button_Click()

    Dim i As Integer, j As Integer
    
    For i = 1 To 10
        For j = 1 To 5
            Cells(i, j) = i + j
        Next j
    Next i
    
End Sub

 

위 코드는 i를 1에서 10까지 1씩 증가시키고

j를 1에서 5까지 1씩 증가시키면서

i번째 행, j번째 열에 i + j 를 계산해서 출력하라는 것이다.

 

i = 1 일 때 j를 1에서 5까지 증가시켜가며 계산

i = 2 일 때 j를 1에서 5까지 증가시켜가며 계산

...

i = 9 일 때 j를 1에서 5까지 증가시켜가며 계산

i = 10 일 때 j를 1에서 5까지 증가시켜가며 계산

 

이렇게 계산하는 것을 위 코드처럼 나타낼 수 있다.

 

실행하면 다음과 같은 결과를 얻게 된다.

 

 

위에서는 변수를 1씩 증가시켰는데

다른 수만큼 증가시키거나 감소시킬 수도 있다.

Step 을 쓰면 된다.

 

Sub Button_Click()

    Dim i As Integer, j As Integer
    
    For i = 1 To 10 Step 2
        For j = 1 To 5
            Cells(i, j) = i + j
        Next j
    Next i
    
End Sub

 

위 코드는 i 를 1에서 10까지 2씩 증가시키면서

j 를 1에서 5까지 1씩 증가시켜서

i번째 행, j번째 열에 i + j 를 계산해서 출력하라는 거다.

 

i가 1부터 시작하니까 2씩 증가시키면

3, 5, 7, 9 가 되고

9 다음이 11이지만 10까지 증가시키라고 했으니까

9까지만 계산하게 된다.

 

실행하면 다음과 같은 결과를 얻게 된다.

 

 

Step 을 안쓰면 기본적으로 1씩 증가시키는 것이 된다.

Step 1 이라고 써도 똑같지만, 굳이 쓸 필요가 없겠지.

 

Sub Button_Click()

    Dim i As Integer, j As Integer
    
    For i = 10 To 1 Step -3
        For j = 1 To 5
            Cells(i, j) = i + j
        Next j
    Next i
    
End Sub

 

위 코드는 i를 10에서 1까지 3씩 감소시키면서

j를 1에서 5까지 1씩 증가시켜서

i번째 행, j번째 열에 i + j 를 계산해서 출력하라는 거다.

 

i가 10부터 시작하니까 3씩 감소시키면

7, 4, 1 이 된다.

그 다음은 -2가 되겠지만, 1까지 감소시키라고 했으니.

 

위 코드를 실행하면 다음과 같은 결과를 얻게 된다.

 

 

반응형

'Excel VBA 기초' 카테고리의 다른 글

Excel VBA - Select Case  (0) 2023.12.03
Excel VBA - If  (0) 2023.12.03
Excel VBA - VBA Editor 살펴보기 (2)  (0) 2023.11.30
Excel VBA - 변수 (2)  (0) 2023.11.30
Excel VBA - 변수 (1)  (0) 2023.11.30