특정 소스를 반복해서 처리하고 싶을 때 For 반복문을 사용합니다. For 문은 시작값과 증가값 종료값으로 구성되어 있습니다. 시작값은 설정한 증가값을 계속 더해서 종료값보다 커지는 순간 끝나는 구조입니다.
◎ 1. For Next 반복문 형식 |
▼ VBA 에서 반복 구문인 For Next 의 형식은 다음과 같습니다. 지정한 횟수 만큼 명령문을 반복하기 위해 사용합니다. 증가값은 사용자가 지정할 수 있으며, 음수(-) 값으로 감소시키는 것도 가능합니다.
For 계산변수 = 시작값 To 종료값 [Step 증가값]
[명령문]
[Exit For]
[명령문]
Next [계산변수]
◎ 2. 초기값, 종료값으로 반복문 사용하기 |
▼ For Next 반복문에서 증가값인 Step 을 지정하지 않으면 1 을 적용합니다. 아래 샘플은 1 씩 증가시킨 값을 출력하고 합계를 구해서 마지막 셀에 추가하는 소스입니다.
Sub Input_Click_1()
Dim i As Integer
Dim total As Integer
Dim sumdata As Integer
total = 10
'' 1 만큼 증가
For i = 1 To total
Cells(i, 1) = i
sumdata = sumdata + i
Next
Debug.Print sumdata
Cells(total + 1, 1) = "SUM = " & sumdata
End Sub
그림에 버튼을 누르는 순간 셀 값을 읽어서 합계를 표시합니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 매크로 실행 버튼으로 코드 실행하기 ▶ 엑셀 VBA 개발을 위한 개발 도구 탭 추가하는 방법 ▶ 엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기 ▶ 엑셀 VBA 개발 도구를 이용해서 버튼 삽입하고 함수 연결하기 ▶ 엑셀 VBA 셀 참조하는 여러가지 방법 |
◎ 3. 반복문 증가값 지정하기 |
▼ 다음은 증가값을 사용자가 지정한 경우입니다. Step 다음에 입력한 숫자만큼 i 값이 증가하므로 위의 샘플소스와 달리 한칸씩 건너 뛰면서 읽습니다.
Sub Input_Click_2()
Dim i As Integer
Dim total As Integer
Dim sumdata As Integer
total = 10
'' 2 만큼 증가
For i = 1 To total Step 2
Cells(i, 1) = i
sumdata = sumdata + i
Next
Debug.Print sumdata
Cells(total + 1, 1) = "SUM = " & sumdata
End Sub
◎ 4. 증가값 음수지정 하기 |
▼ 초기값이 종료값보다 큰 경우 증가값을 음수로 지정해서 반복하는 샘플입니다. 시작값을 줄이면서 반복하고 싶을 때 사용하는 방법입니다.
Sub Input_Click_3()
Dim i As Integer
Dim total As Integer
Dim sumdata As Integer
total = 10
'' 증감 -1
For i = total To 1 Step -1
Cells(i, 1) = i
sumdata = sumdata + i
Next
Debug.Print sumdata
Cells(total + 1, 1) = "SUM = " & sumdata
End Sub
◎ 5. 반복문 중첩 지정하기 |
▼ For Next 문에서 Next 뒤에는 반복 변수값이 들어갑니다. 하지만 보통 생략합니다. 만약 중복해서 For Next 를 지정하고 싶다면 해당 영역에 반복 변수값은 구분을 위해서 Next 뒤에 지정해야 합니다.
Sub Input_Click_4()
Dim i As Integer
Dim co As Integer
Dim sumdata As Integer
'' 중복 For Next 문
For i = 1 To 3
For j = 1 To 5
co = co + 1
Cells(co, 1) = co
sumdata = sumdata + co
Next j
Next i
Cells(co + 1, 1) = "SUM = " & sumdata
End Sub
◎ 6. Exit for 문으로 반복문 빠져나가기 |
▼ For Next 반복문을 끝나지 진행하지 않고 특정 조건이 되었을 때 빠져나오는 방법은 Exit For 구분을 사용하는 것입니다. 아래 샘플에서는 특정 조건이 되었을 때 For Next 를 종료하기 위해 If 함수를 사용했습니다.
Sub Input_Click_5()
Dim i As Integer
Dim total As Integer
Dim sumdata As Integer
total = 10
'' 함수 빠져 나가기
For i = 1 To total
If sumdata > 30 Then
Exit For
End If
Cells(i, 1) = i
sumdata = sumdata + i
Next i
Cells(total + 1, 1) = "SUM = " & sumdata
End Sub
▼ 그림에서 보듯이 합계값이 30 이상인 9 가 되기 전 8까지 반복하고 종료한 결과입니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 매크로 실행 버튼으로 코드 실행하기 ▶ 엑셀 VBA 개발을 위한 개발 도구 탭 추가하는 방법 ▶ 엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기 ▶ 엑셀 VBA 개발 도구를 이용해서 버튼 삽입하고 함수 연결하기 ▶ 엑셀 VBA 셀 참조하는 여러가지 방법 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 행, 열 삭제 및 추가하기 (0) | 2022.12.14 |
---|---|
엑셀 VBA 주민번호, 이메일 문자열 잘라 내는 방법 (8) | 2022.11.30 |
엑셀 VBA 문서에 포함된 하이퍼링크 한번에 삭제하기 (1) | 2022.11.30 |
엑셀 VBA 웹브라우저(인터넷 익스플로러) 띄우는 방법 (0) | 2022.11.30 |
엑셀 VBA 옵션 버튼 OptionButton 컨트롤 사용하기 (0) | 2022.11.21 |
엑셀 VBA 영역(Range)을 배열(Array) 로 변경하기 (5) | 2022.11.14 |
엑셀 VBA 리스트 박스(ListBox) 사용하기 (0) | 2022.11.10 |
엑셀 VBA 폰트(Font) 색상과 스타일, 사이즈, 글꼴 변경하는 방법 (0) | 2022.10.27 |