회사 생존기/엑셀 VBA로 생존하기

Do ~ Loop문(While, Until)

택이형. 2023. 1. 12.

 

드디어 VBA반복문의 마지막 Do ~ Loop문에 도달하였습니다. 반복문의 사용방법과 효과는 다 비슷비슷합니다. 다만 상황에 따라 어떠한 반복문을 선택할지를 결정하면 되는 것이죠. 오늘은 Do ~ Loop를 사용해서 업무자동화를 위한 단계로 한 발짝 다가가 보도록 하겠습니다.

 

 

Do ~ Loop 반복문

 

 

 

Do ~ Loop문의 경우는 사실 실무에서 많이 사용되는 편은 아닙니다. 이유는 For문과 For Each문의 활용도가 탁월하기도 하며, Do ~ Loop를 사용시 무한대로 순환하는 단점이 존재하기 때문이죠. (물론 Exit Do를 사용하여 무한 순환을 강제로 종료시켜 줄수도 있습니다.) 그럼에도 반복문의 일환으로 알고넘어가면 VBA실력향상에 도움이 될 수 있기 때문에 짚고 넘어가도록 하겠습니다.

 

 

DO ~ Loop문 (While, Until)의 기본 문법에 대해 알아보자.

 

Do ~ Loop문은 크게 4가지 형태로 사용이되는데요. 

바로 ① Do while ~ Loop, ② Do until ~ Loop, ③ Do  ~ Loop while, ④ Do  ~ Loop until의 형태로 사용됩니다.

 

그럼 형태별 기본문법을 한번 살펴보시죠.

① Do while ~ Loop

Do while 조건
   실행코드
Loop
② Do until ~ Loop

Do until 조건
   실행코드
Loop
③ Do  ~ Loop while

Do
   실행코드
Loop while
④ Do  ~ Loop until

Do
   실행코드
Loop until

 

 

 

Do ~ Loop문(While, Until)의 원리를 알아보자.

Do ~ Loop문의 경우 형태는 조금씩 다르나 사용하는 방법은 모두 유사함을 알 수 있습니다.

첫 번째로 주의하셔야 할 점은 While과 Utill의 미묘한 차이일 텐데요. 영어 뜻을 생각해 보면 그나마 이해하기가 수월합니다.

 

① Do : 실행하다.

② while : ~동안

③ until : ~까지

④ Loop : 반복하다.

 

 

 

예를한번 들어 볼까요.

Do while ~ Loop문의 예시입니다.

Dim i As Long
Dim j As Long

Do while i <= 10
' i가 10 이하일 동안 실행해라
   i = i + 1
   j = j +3
' 실행코드를
Loop
' 반복해서

코드를 해석해 보면 i가 10 이하일 "동안" 실행코드를 반복해서 실행해라. 가 되겠네요.
Do until ~ Loop문의 예시입니다.

Dim i As Long
Dim j As Long

Do until i <= 10
' i가 10 이하일 동안실행해라
   i = i + 1
   j = j +3
' 실행코드를
Loop
' 반복해서

코드를 해석해 보면 i가 10 이하일 때 "까지" 실행코드를 반복해서 실행해라. 가 되겠네요.

다음은 Do  ~ Loop while문의 예시입니다.

Dim i As Long
Dim j As Long

Do 
' 실행해라
   i = i + 1
   j = j +3
' 실행코드를
Loop while i <= 10
' i가 10 이하일 동안 반복해서

코드를 해석해 보면 i가 10 이하일 "동안" 실행코드를 반복해서 실행해라. 가 되겠네요.
사실 While이 사용된 위치만 변경될 뿐 위에서 사용되었던 예제와 동일한 결과를 가져옵니다.
다음은 Do  ~ Loop until문의 예시입니다.

Dim i As Long
Dim j As Long

Do 
' 실행해라
   i = i + 1
   j = j +3
' 실행코드를
Loop unitl i <= 10
' i가 10 이하가 될 때까지 반복해서

코드를 해석해 보면 i가 10 이하가 될때 "까지" 실행코드를 반복해서 실행해라. 가 되겠네요.
마찬가지고 until이 사용된 위치만 변경될 뿐 위에서 사용되었던 예제와 동일한 결과를 가져옵니다.

마치며

지금까지 Do ~Loop문의 사용방법에 대해 알아보았습니다.

사실 Do ~ Loop문의 경우는 VBA를 보완해 주는 성격으로 많이 사용되기 때문에 다른 반복문보다는 사용빈도가 적은 것은 사실입니다. 그럼에도 반복문의 기본이 되는 부분이니 알아두면 나쁠 건 없겠죠!

또한 Do ~ Loop문의 형태를 R(통계프로그램)의 반복문의 형태와 유사하기 때문에 공부해 놓으면 추후 R을 학습하실 때 도움이 될 것입니다.

 

▼▼▼함께 보면 좋은 글▼▼▼

 

VBA 반복문 1탄(for~next 사용하기)

『 오늘은 VBA 반복문에 대해 알아보려고 하는데요. 반복문은 반복적인 작업을 대신해주는 만능키라고 할 수 있어요. 반복문은 지정한 횟수만큼, 혹은 무한으로 사용된 코드를 반복하게 만들어

lst914.tistory.com

 

 

VBA 반복문 2탄(For each ~ Next 사용하기)

『 For ~ next문과 For each ~ next문만 자유롭게 사용가능하다면 업무자동화에 한 발짝 더 다가섰다고 할 수 있습니다. 그만큼 사용빈도가 높고 중요한 내용이라고 할 수 있습니다. 업무자동화를 위해

lst914.tistory.com

 

 

VBA 빈셀 채우기!(피벗테이블 오류 최소화 방법)

『 피벗테이블을 사용할 때 가장 주의하여야 할 점은 셀병합으로 인해 숫자가 누락되는 것입니다. 또한 합계가 되는 기준셀의 명칭이 없게 되면 우리가 원하는 값에 도달할 수 없다는 것이죠.

lst914.tistory.com

 

 

VBA로 엑셀 데이터 필터기능 적용하기!

『 수많은 raw데이터 중에서 내가 원하는 부분만 걸러서 보기 위해서 엑셀의 필터기능을 많이 사용하고 계십니다. 필터기능 역시 VBA를 통해 구현이 가능한데요. 원하는 기준으로 필터 적용 후 필

lst914.tistory.com

 

 

노력은 나를 배신하지 않는다.

댓글