본 강의에서는 Do Loop 반복문에 대해 알아보겠습니다.
1. Do While Loop 문
Do While Loop 문은 While 옆의 조건문이 거짓이 될 때까지 실행합니다.
Sub Macro()
Dim row As Integer
row = 1
Do While row < 11
Cells(row,1).value = row
row = row + 1
Loop
End Sub
위의 예제에서 변수 row의 값은 반복문이 실행될 때마다 값이 1씩 증가합니다.
반복문이 실행되며
Cells(1,1).value = 1
Cells(2,1).value = 2
Cells(3,1).value = 3
.
.
.
Cells(10,1).value = 10 까지 실행되고 row의 값이 11이 되어 조건문이 거짓이 되므로 반복문을 빠져나가게 됩니다.
참고로 조건문을 반복문의 위가 아닌 아래로 내릴 수도 있습니다.
Sub Macro()
Dim row As Integer
row = 1
Do
Cells(row,1).value = row
row = row + 1
Loop While row < 11
End Sub
결과는 동일합니다.
그럼 조건문을 굳이 왜 아래로 내릴까요.
조건문을 아래로 내리게 되면 적어도 한번은 반복문 안에 있는 매크로를 실행시킬 수 있습니다.
Sub Macro()
Dim row As Integer
row = 5
Do While row < 5
Cells(row,1).value = row
row = row + 1
Loop
End Sub
위의 예제에서는 반복문 안쪽의 매크로를 실행하지 않습니다.
Sub Macro()
Dim row As Integer
row = 5
Do
Cells(row,1).value = row
row = row + 1
Loop While row < 5
End Sub
그러나 위의 예제에서는 적어도 한번의 반복문을 실행하기 때문에 Cells(5,1)의 값이 5로 변하게 됩니다.
2. Do Until Loop 문
Sub Macro()
Dim row As Integer
row = 10
Do Until row = 0
Cells(11-row, 1).value = row
row = row - 1
Loop
End Sub
이번에 row는 10부터 시작해 1씩 감소합니다.
Cells(1,1).value = 10
Cells(2,1).value = 9
Cells(3,1).value = 8
.
.
.
Cells(1,1).value = 1 까지 실행 후 row가 0이 되면 Until의 조건문이 참이 되므로 반복문을 빠져나오게 됩니다.
Do Until Loop 문도 Do While Loop 문 처럼 조건문을 아래로 내려서 사용이 가능합니다.
Sub Macro()
Dim row As Integer
row = 10
Do
Cells(11-row, 1).value = row
row = row - 1
Loop Until row = 0
End Sub
위의 예제도 반복문은 적어도 한번은 실행하게 됩니다.
이상으로 Do Loop 반복문 다루기를 마치겠습니다.
'엑셀 vba 기초' 카테고리의 다른 글
엑셀 vba Function 프로시저 사용법 (0) | 2020.03.01 |
---|---|
엑셀 vba 시간 지연(딜레이) 넣는 법 (1) | 2020.02.22 |
엑셀 vba 셀 배경색 바꾸기 (1) | 2020.02.22 |
엑셀 vba 반복문 For 다루기 (0) | 2020.02.22 |
엑셀 vba 랜덤한 수 생성하는 법 (0) | 2020.02.21 |
WRITTEN BY