사용자가 워크시트의 셀을 드래그해서 선택했을 때 어떻게 하면 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 지정한 파일 삭제하기 (0) | 2024.02.17 |
---|---|
엑셀 VBA 행 열 숨기기와 보이기 구현 (0) | 2024.02.11 |
엑셀 VBA 시트에 있는 내용을 파일, 텍스트로 출력하기 (2) | 2024.01.28 |
엑셀 VBA - Value, Formula, FormulaR1C1, Text 속성으로 값 입력 및 읽기 (1) | 2024.01.24 |
엑셀 VBA 셀 참조하는 여러가지 방법 (4) | 2024.01.11 |
엑셀 VBA 이항 논리 연산자 And, Or, Xor 와 단항 논리 연산자 Not 사용하기 (1) | 2024.01.03 |
엑셀 VBA 함수 CStr 데이터를 문자열로 변환하기 (1) | 2024.01.02 |
엑셀 VBA 날짜 여부 확인 함수 IsDate 사용하기 (1) | 2024.01.02 |