(VBA) 반복문 중 "Until" 알아보기 - Do, Until, Loop
본문 바로가기
목표는!!퇴근!! (엑셀VBA)

(VBA) 반복문 중 "Until" 알아보기 - Do, Until, Loop

by 종닭이 2023. 8. 9.
728x90
반응형

(VBA) 반복문 중 "Until" 알아보기 - Do, Until, Loop

🚫 Until문 구조
Do Until [조건] [연산자] [조건]
    [명령어]
Loop

Do 
    [명령어]
Loop Until [조건] [연산자] [조건]

While문과 실행은 똑같이 합니다

그런데 차이점은 조건을 설정하면 반대로 작동한다는 겁니다

 

조건을 "10보다 크면 반복해라"라고 설정하려면

 

🚫 Do Until Loop
Private Sub CommandButton1_Click()
    
    Dim i As Integer
    
    Do Until i > 10
        Debug.Print i
        i = i + 1
    Loop
    
End Sub

Do Until Loop

잘 보시면 조건이 "10보다 크면"입니다

그런데 결과는 0 ~ 10까지 출력이 됩니다

왜나하면 Until문이기 때문에 10보다 크면 반복문을 멈추고

10보다 작으면 반복문이 실행됩니다

 

🚫 Do Until Loop
Private Sub CommandButton1_Click()
    
    Dim i As Integer
    
    Do
        Debug.Print i
        i = i + 1
    Loop Until i > 10
    
End Sub

Do Loop Until

🚫 설명

결과는 똑같습니다

하지만 개념이 약간 다릅니다

 

Until [조건] [연산자] [조건]이 먼저 오면 

조건을 확인 후 반복문이 실행됩니다

 

그리고 Until [조건] [연산자] [조건]이 마지막에 오면

반복문을 1회 실행 후 조건을 확인합니다

 

🚫 Exit Do
Private Sub CommandButton1_Click()
    
    Dim i As Integer
    
    Do Until i > 10
        Debug.Print i
        i = i + 1
        Exit Do
    Loop
    
End Sub

Exit Do

Exit Do를 사용해서 반복문을 빠져나올 수 있습니다

 

 

⛔ 반복문 사용 시 주의점 ⛔

만약 Exit For나 Exit Do처럼 반복문을 중단하는 명령어가 없는 경우
무한 반복에 빠질 수 있습니다
그럴 경우 ESC나 Ctrl + Pause Break로 멈출 수도 있지만 만약에 이걸로도 멈추지 않는다면
어쩔 수 없이 강제 종료해야 합니다
Ctrl + Alt + Del -> 엑셀 강제 종료
저장이 안 되어있으면.... 큰일 납니다
반복문은 실행하기 전 꼭 조건을 확인하시고 실행해 주세요
728x90
반응형