반응형
다른 언어와 마찬가지로 VBA에도 특정 실행처리를 반복하는 반복문이 있다.
바로 예시를 확인해보자
for문의 예시
Dim i As Integer '인덱스 변수
'Integer변수 i가 1부터 3까지 총 3번 실행
For i = 1 To 3
Debug.Print(i) '인덱스 변수 i의 값을 출력
Next
위의 예시의 경우 i를 1씩 늘려가며 1부터 3까지 3회 실행된다.
결과는 1 2 3 이 출력된다.
i를 임의의 값으로 늘려서 반복문을 돌리고 싶다면 아래의 예시를 참고하면 된다.
Dim i As Integer
'i가 1부터 5까지 2씩 증가하며 실행된다.
For i = 1 To 5 Step 2
Debug.Print(i) ' 1 3 5를 출력
Next
'i가 3부터 1까지 -1씩 더해지며 실행된다.
For i = 3 To 1 Step -1
Debug.Print(i) ' 3 2 1를 출력
Next
위의 예시에서 첫번째 예시의 경우 i가 1 3 5로 2씩 증가하며 3회 실행된다.
두번째 예시의 경우 3 2 1로 -1씩 더해지며 총 3회 실행된다.
foreach의 예시
Dim item As Range '오브젝트 변수
'item에 A1부터 A3의 셀의 오브젝트을 넣는다. 총 3회 실행
For Each item In Range("A1:A3")
Debug.Print(item.Address) 'A1부터 A3까지 셀의 위치를 출력
Next
For Each의 경우 In뒤에 있는 오브젝트 변수의 요소들을 순서대로 불러와 In 앞에 있는 변수에 대입한다.
반복문으로부터 break(빠져나오기)
Dim i As Integer
For i = 1 To 5
If i = 3 Then 'i가 3인 경우
Exit For 'For문을 빠져나온다
End If
Debug.Print(i) ' 1 2
Next
' Exit For 뒤에는 여기서부터 처리를 한다.
Exit For 를 하면 반복문으로 부터 빠져나올 수 있다.
위의 예시의 경우 1 2 까지만 출력되고 3인 경우 Exit For로 인해 빠져나와서 출력이 멈춘다.
다음 실행 처리(Continue)
Dim i As Integer
For i = 1 To 3
If i = 2 Then
GoTo Continue ' Continue:가 쓰여 있는 줄로 이동
End If
Debug.Print(i) ' 1 3이 출력된다. i가 2인 경우 스킵되어 출력되지 않는다.
Continue: ' GoTo Continue 가 나오면 여기서부터 처리가 일어난다.
Next
GoTo continue를 만나면 Continue: 가 나올까지 다른 처리 조건을 무시하고 이동한다.
그 뒤Continue: 부터 처리를 개시한다.
반응형
'IT 이모저모 > VBA' 카테고리의 다른 글
VBA(엑셀 매크로) 셀 내용 가져오기, 셀 내용 넣기(Cells활용) (1) | 2020.07.05 |
---|---|
VBA(엑셀 매크로) 문자열 자르기(Left, Right) (0) | 2020.06.28 |
VBA(엑셀 매크로) if(조건)문 과 비교연산자 설명, 예시 (0) | 2020.06.10 |
VBA Byval과ByRef차이점과 활용법 (0) | 2020.06.08 |
VBA sub프로시저 Function프로시저 (함수) 차이점 및 생성, 불러오는법 (0) | 2020.06.07 |