[ 들어가며 ]
지난 블로그에서
Collection에 대한 기본 개념과
선언, 아이템의 추가 및 삭제,
그리고 아이템의 개수를 확인하는 방법을 알아보았습니다.
아래 링크를 참고하시면
지난 블로그를 확인하실 수 있습니다.
※ 엑셀 VBA의 배열 대신 Collection 첫번째(선언 및 아이템 추가, 삭제, 개수 확인)
오늘은
For문과 결합하여
Collection을 활용하는 방법을 알아보겠습니다.
[ For문 및 For Each문 을 사용하여 Collection 활용하기]
먼저 아래 코드를 샘플로 사용하겠습니다.
Sub Collection_Test()
Dim col As New Collection
col.Add "사과"
col.Add "배"
col.Add "오렌지"
col.Add "딸기", after:=1
col.Add "호박", before:=4
End Sub
Collection을 선언하고
그 안에
[ 사과, 딸기, 배, 호박, 오렌지 ]를 넣었습니다.
먼저 For Each를 사용하여
Collection의 아이템을 출력하는 방법입니다.
※ For Each 문에 대한 기본적은 설명은 여기를 참고하시면 됩니다.
Sub Collection_Test()
Dim col As New Collection
col.Add "사과"
col.Add "배"
col.Add "오렌지"
col.Add "딸기", after:=1
col.Add "호박", before:=4
Dim item As Variant
For Each item In col
Debug.Print item
Next item
End Sub
이 코드를 실행하면
col 변수의 값을 하나씩 item 변수에 넣어가며
직접실행창에 출력을 합니다.
For Each 문이 아닌
For문만을 사용한다면 아래와 같이 사용할 수 있습니다.
Sub Collection_Test()
Dim col As New Collection
col.Add "사과"
col.Add "배"
col.Add "오렌지"
col.Add "딸기", after:=1
col.Add "호박", before:=4
Dim i As Long
For i = 1 To col.Count
Debug.Print col(i)
Next i
End Sub
위 코드를 실행하면
아래 그림과 같이 실행 결과가 출력되며
그 내용은 앞선 코드 실행결과와 동일합니다.
만약 Collection의 모든 아이템을 가져오는 것이 아닌
짝수번째 아이템만 가지고 오고 싶다면
아래 코드와 같이 활용하는 것도 가능합니다.
Sub Collection_Test()
Dim col As New Collection
col.Add "사과"
col.Add "배"
col.Add "오렌지"
col.Add "딸기", after:=1
col.Add "호박", before:=4
Dim i As Long
For i = 2 To col.Count Step 2
Debug.Print col(i)
Next i
End Sub
위 코드는 두번째 아이템과 네번째 아이템만을 출력하며
그 결과는 아래 그림과 같습니다.
만약 아이템을 역순으로 출력하고 싶다면
아래 코드와 같이
For문을 활용하시면 됩니다.
Sub Collection_Test()
Dim col As New Collection
col.Add "사과"
col.Add "배"
col.Add "오렌지"
col.Add "딸기", after:=1
col.Add "호박", before:=4
Dim i As Long
For i = col.Count To 1 Step -1
Debug.Print col(i)
Next i
End Sub
위 코드를 실행하면
아래 그림과 같이
Collection의 아이템이 역순으로 출력이 됩니다.
[ 마치며 ]
오늘은 간단하게 Collection과
반복문 중에 For문 / For ~ Each문을 사용하여
Collection의 아이템을 출력하는 방법을 알아보았습니다.
Collection은 자료의 추가 삭제가 용이하고
배열에 비해 초보자가 사용하기 편한 부분이 많으니
많이 활용해 보시기 바랍니다.
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
'EXCEL VBA' 카테고리의 다른 글
엑셀 VBA의 배열 대신 Collection 세번째(시트 데이터 읽기, 불러오기) (0) | 2024.02.16 |
---|---|
엑셀 VBA에서 시트에 접근하는 두가지 방법(시트이름, 코드네임) (0) | 2024.02.15 |
엑셀 VBA의 배열 대신 Collection 첫번째(선언 및 아이템 추가, 삭제, 개수 확인) (0) | 2024.02.01 |
엑셀 VBA 단어 채우기, VBA 좀 더 편리하게 사용하기 (2) | 2024.01.31 |
엑셀 VBA 매크로 실행시간 계산하기, 매크로 실행에 걸리는 시간은?, Timer 함수 (0) | 2024.01.30 |