Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 반복문 For Next, For Each Next 사용하기

엑셀(Excel)/VBA
반응형

VBA 에서 사용하는 반복문에는 For 가 있습니다. 반복 횟수를 지정해서 작업을 수행하고 싶을 때 사용합니다. 반복문을 구성하는 형태는 두 가지가 있습니다. For ~ Next For Each ~ Next 로 나눠집니다. 두 가지 형태는 샘플 예제를 통해 익혀보도록 하겠습니다.

 

1. For ~ Next

 

첫 번째 For 문의 형태는 반복의 시작과 끝을 숫자로 제어합니다. For To 사이의 값에는 시작값을 세팅하고 To 뒤에 종료 숫자를 입력합니다.  수행할 반복 작업 코드는 For ~ Next 사이에 위치합니다. 마지막 Next 문 뒤에는 시작값 변수를 입력합니다.

 

For 변수 = 시작값 To 종료값

    반복 수행할 코드

Next 변수

 

샘플 코드는 다음과 같습니다. 시작값이 들어간 i 변수에 담긴 숫자를 시작으로 To 다음에 입력한 값만큼 1씩 증가하면서 반복합니다.  

 

Sub ForNext()
   
    For i = 1 To 10
        Debug.Print i
    Next i
 
End Sub

 

아래 그림은 함수를 실행한 결과입니다. Print 함수를 이용해서 1 부터 10까지 출력했습니다.


 

 

For 문의 기본 숫자 증가값은 1 입니다. 이것을 사용자가 임의로 지정하고 싶을 때 Step 구문을 사용합니다. 아래와 같이 Step 뒤에 증가 숫자를 입력합니다.

 

For 변수 = 시작값 To 종료값 Step 증가값

    반복 수행할 코드

Next 변수

 

샘플은 반복문의 증가값으로 Step  2 를 설정했습니다. 출력은 홀수값인 1, 3, 5 ... 가 출력됩니다.

 

Sub ForNext()
   
    For i = 1 To 10 Step 2
        Debug.Print i
    Next i
 
End Sub

 


 

 

2. For Each ~ Next

 


두 번째 For 문의 구조는 다음과 같습니다. In 문을 기준으로 오른쪽에는 여러 데이터가 들어간 배열 객체를 입력합니다. 왼쪽은 배열 객체에서 차례대로 하나씩 꺼낸 개별 객체가 담길 변수명을 입력합니다. For 문은 배열의 마지막 요소의 값에 이를 때까지 반복합니다. For 문의 반복 횟수는 컬랙션 객체에 들어가 있는 데이터 개수에 달려 있습니다.

 

For Each 개별 객체 In 배열객체

         반복 수행할 코드

Next

 

보통 엑셀을 다루는 VBA 에서는 셀 영역이 담긴 배열객체를 사용합니다. 샘플에서는 좀더 쉽게 이해할 수 있도록 Array 배열 객체를 만들어서 사용했습니다.

 

Sub ForEachNext()
   
    arrData = Array(0, 1, 2, 3, 4, 5, 6)
    For Each iData In arrData
        Debug.Print iData
    Next
 
End Sub

 

함수를 실행한 결과 arrData 배열 변수에 담긴 숫자를 전부 출력했습니다.

반응형
Posted by 녹두장군

댓글을 달아 주세요