사용자가 워크시트의 셀을 드래그해서 선택했을 때 어떻게 하면 VBA 에서 셀의 값을 하나씩 차례대로 읽을 수 있을까요? 이것은 VBA 에서 데이터를 걸러 낼 때 자주 이용하는 방법입니다. 선택한 영역에서 특정한 값을 제외시키고 싶을 때 셀 값을 하나씩 읽어 어떤 값이 들어 있는지 알아야 하잖아요. 오늘은 For each 반복문을 사용해서 선택한 영역의 데이터를 콘솔 창에 출력해 보도록 하겠습니다.
▼ 먼저 선택한 영역의 행과 열의 개수를 알아 보겠습니다. Selection 개체의 Cells 함수를 이용하면 현재 선택된 영역을 가져올 수 있습니다. 반환 받은 rMulti 개체의 Rows.Count 와 Columns.Count 속성값을 이용해서 행과 열의 개수를 알아 낸 뒤 Debug.Print 함수로 콘솔에 출력합니다.
Set rMulti = Selection.Cells() rowCount = rMulti.Rows.Count colCount = rMulti.Columns.Count Debug.Print "ROW 개수 : " & rowCount, "COLUMN 개수 : " & colCount |
▼ 다음은 반환 받은 Range 개체 rMulti 와 For Each 를 이용해서 하나씩 출력하는 소스입니다. 하나의 반복문으로 모든 셀의 값 출력이 가능합니다. rMulti.Cells 로 반복문을 돌렸을 때 출력되는 순서는 그림과 같습니다. 첫 번째 행의 모든 데이터를 출력하고 아래로 내려가는 두 번째, 세 번째 행을 출력하는 방식입니다.
For Each rCell In rMulti.Cells Debug.Print rCell.Address, rCell.Value Next rCell |
▼ 만약 행과 열의 출력 순서를 바꾸고 싶다면 2개의 For each 문을 사용해서 출력하시면 됩니다. 선택한 영역의 또 다른 출력 방식이죠. B 열을 데이터를 출력한 뒤 C, D, E 열을 차례대로 출력하는 방식입니다. Columns 과 Rows 를 바꾸면 반대의 방향으로 출력할 수 있겠죠.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 셀 영역 선택하는 여러가지 방법 ▶ 엑셀 VBA 셀 참조하는 여러가지 방법 ▶ 엑셀 VBA 셀 색상 변경하는 두 가지 방법 ▶ 엑셀 VBA 셀 데이터 검색해서 찾기 ▶ 엑셀 VBA 마지막 행과 열의 수 찾기 |
For Each rCol In rMulti.Columns For Each rCell In rCol.Rows Debug.Print rCell.Address, rCell.Value Next rCell Next rCol |
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 셀 영역 선택하는 여러가지 방법 ▶ 엑셀 VBA 셀 참조하는 여러가지 방법 ▶ 엑셀 VBA 셀 색상 변경하는 두 가지 방법 ▶ 엑셀 VBA 셀 데이터 검색해서 찾기 ▶ 엑셀 VBA 마지막 행과 열의 수 찾기 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA Application.Evaluate 사용해서 수식 계산하기 (0) | 2022.07.07 |
---|---|
엑셀 VBA 모듈(Module) 소스 파일 관리하기 (0) | 2022.06.26 |
엑셀 VBA 시트 더블클릭 이벤트로 셀에 배경색 변경하기 (2) | 2022.06.22 |
엑셀 VBA 문자열, 텍스트 숫자를 문자열 숫자로 변경하기 (0) | 2022.05.08 |
엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기 (0) | 2022.05.03 |
엑셀 VBA 개체, 속성, 함수, 이벤트 사용법과 사례 검색해서 참고하기 (0) | 2022.04.26 |
엑셀 VBA 이항 논리 연산자 And, Or, Xor 와 단항 논리 연산자 Not 사용하기 (0) | 2022.04.19 |
엑셀 VBA Function 와 Sub 프로시저의 차이점과 사용법 알아 보기 (0) | 2022.04.18 |