Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 반복문 Do While 사용하기

엑셀(Excel)/VBA
반응형

흔히 반복문을 처리할 때 For 문을 이용하는데, 반복횟수가 아닌 특정조건을 만족할 때까지 작업하고 싶은 경우에는 Do While 을 사용합니다. 만약 조건을 잘못 입력해서 만족하는 경우의 수가 나오지 않는다면 무한루프에 빠지는 단점이 있습니다. Do While 문은 While 문 뒤의 조건이 True 일 동안에 반복하고 False 를 만나면 종료합니다.

 

 

 

1. Do While ~ Loop

 

 

첫 번째 While 문이 앞에 오는 경우입니다. 조건문은 Do While 뒤에 옵니다. Do While Loop 사이에 반복할 코드를 삽입합니다. 형태는 아래와 같습니다.

 

Do While 조건문

          반복할 코드

Loop

 

샘플 함수의 소스는 Do While 반복문에서 i 10을 넘어가면 종료합니다. 반복 작업은 1 씩 증가한 i 변수값을 콘솔에 출력합니다.

 

Sub DoWhileLoop()
   
    Do While i < 10
        i = i + 1
        Debug.Print i
    Loop
 
End Sub

 

 

함수를 실행한 결과는 다음과 같습니다.

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 반복문을 이용해서 폼에 있는 전체 컨트롤 제어하기
엑셀 VBA On Error GoTo 반복문에서 에러를 걸러내고 데이터를 구하기
엑셀 VBA 무한 루프 빠져 나오거나 취소 기능 없애기
엑셀 VBA 중복 데이터 재귀 호출과 반복문 사용해서 삭제하기
셀 VBA GoTo 이용해서 줄로 분기하기

 

 

2. Do ~ Loop While

 

 


두 번째 형태는 조건문이 마지막에 옵니다. 그러니까 While 문과 조건문이 마지막 Loop 뒤에 위치합니다. 무조건 한번은 코드를 수행하는 구조로 조건문이 참인 동안 작업을 반복해서 진행합니다.

 

Do

    반복 수행할 코드

Loop While 조건문

 

샘플 코드는 이전과 달리 조건문이 마지막에 추가가 되었습니다. 조건에 맞지 않더라도 무조건 반복은 한번 이상 수행됩니다.

 

Sub DoWhileLoop()
   
    Do
        i = i + 1
        Debug.Print i
    Loop While i < 10
 
End Sub

 

함수를 실행한 결과는 다음과 같습니다.

 

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 반복문을 이용해서 폼에 있는 전체 컨트롤 제어하기
엑셀 VBA On Error GoTo 반복문에서 에러를 걸러내고 데이터를 구하기
엑셀 VBA 무한 루프 빠져 나오거나 취소 기능 없애기
엑셀 VBA 중복 데이터 재귀 호출과 반복문 사용해서 삭제하기
셀 VBA GoTo 이용해서 줄로 분기하기
반응형
Posted by 녹두장군1
,