VBA 에서 사용하는 반복문에는 For 가 있습니다. 반복 횟수를 지정해서 작업을 수행하고 싶을 때 사용합니다. 반복문을 구성하는 형태는 두 가지가 있습니다. For ~ Next 와 For Each ~ Next 로 나눠집니다. 두 가지 형태는 샘플 예제를 통해 익혀보도록 하겠습니다.
◎ 1. For ~ Next 문 |
▼ 첫 번째 For 문의 형태는 반복의 시작과 끝을 숫자로 제어합니다. For 와 To 사이의 값에는 시작값을 세팅하고 To 뒤에 종료 숫자를 입력합니다. 수행할 반복 작업 코드는 For ~ Next 사이에 위치합니다. 마지막 Next 문 뒤에는 시작값 변수를 입력합니다.
For 변수 = 시작값 To 종료값
반복 수행할 코드
Next 변수
▼ 샘플 코드는 다음과 같습니다. 시작값이 들어간 i 변수에 담긴 숫자를 시작으로 To 다음에 입력한 값만큼 1씩 증가하면서 반복합니다.
Sub ForNext() For i = 1 To 10 Debug.Print i Next i End Sub |
▼ 아래 그림은 함수를 실행한 결과입니다. Print 함수를 이용해서 1 부터 10까지 출력했습니다.
▼ For 문의 기본 숫자 증가값은 1 입니다. 이것을 사용자가 임의로 지정하고 싶을 때 Step 구문을 사용합니다. 아래와 같이 Step 뒤에 증가 숫자를 입력합니다.
For 변수 = 시작값 To 종료값 Step 증가값
반복 수행할 코드
Next 변수
▼ 샘플은 반복문의 증가값으로 Step 2 를 설정했습니다. 출력은 홀수값인 1, 3, 5 ... 가 출력됩니다.
Sub ForNext() For i = 1 To 10 Step 2 Debug.Print i Next i End Sub |
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기 ▶ 엑셀 VBA 반복문 For Next 문 사용하기 ▶ 엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기 ▶ 엑셀 VBA Function 와 Sub 프로시저의 차이점과 사용법 알아 보기 ▶ 엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법 |
◎ 2. For Each ~ Next 문 |
▼ 두 번째 For 문의 구조는 다음과 같습니다. In 문을 기준으로 오른쪽에는 여러 데이터가 들어간 배열 객체를 입력합니다. 왼쪽은 배열 객체에서 차례대로 하나씩 꺼낸 개별 객체가 담길 변수명을 입력합니다. For 문은 배열의 마지막 요소의 값에 이를 때까지 반복합니다. For 문의 반복 횟수는 컬랙션 객체에 들어가 있는 데이터 개수에 달려 있습니다.
For Each 개별 객체 In 배열객체
반복 수행할 코드
Next
▼ 보통 엑셀을 다루는 VBA 에서는 셀 영역이 담긴 배열객체를 사용합니다. 샘플에서는 좀더 쉽게 이해할 수 있도록 Array 배열 객체를 만들어서 사용했습니다.
Sub ForEachNext() arrData = Array(0, 1, 2, 3, 4, 5, 6) For Each iData In arrData Debug.Print iData Next End Sub |
▼ 함수를 실행한 결과 arrData 배열 변수에 담긴 숫자를 전부 출력했습니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기 ▶ 엑셀 VBA 반복문 For Next 문 사용하기 ▶ 엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기 ▶ 엑셀 VBA Function 와 Sub 프로시저의 차이점과 사용법 알아 보기 ▶ 엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 레지스트리 키값 읽어오기 (1) | 2023.02.24 |
---|---|
엑셀 VBA 시트에서 데이터 셀 영역 구하기 (2) | 2023.02.22 |
엑셀 VBA 개발에 도움이 되는 편집기창 이용 방법들 (0) | 2023.01.31 |
엑셀 VBA 매개변수 전달 방식 ByRef, ByVal 의 차이점 (0) | 2023.01.13 |
엑셀 VBA 메모의 모양을 직사각형, 풍선, 다이어몬드 형태 만들기 (0) | 2023.01.10 |
엑셀 VBA 기존 AVERAGE 평균 함수 수정해서 나만의 함수 만드는 방법 (0) | 2023.01.10 |
엑셀 VBA 아티클 전체 목록 (12) | 2022.12.23 |
엑셀 VBA 문서에 포함된 하이퍼링크 한번에 삭제하기 (1) | 2022.11.30 |