Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 사용자가 선택한 영역 값, 셀 주소 정보 알아 내는 방법

엑셀(Excel)/VBA
반응형

사용자가 워크시트의 셀을 드래그해서 선택했을 때 어떻게 하면 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

 

엑셀 Excel VBA 사용자가 선택한 영역 값, 셀 주소 정보 알아 내는 방법

 

다음은 반환 받은 Range 개체 rMulti For Each 를 이용해서 하나씩 출력하는 소스입니다. 하나의 반복문으로 모든 셀의 값 출력이 가능합니다. rMulti.Cells 로 반복문을 돌렸을 때 출력되는 순서는 그림과 같습니다. 첫 번째 행의 모든 데이터를 출력하고 아래로 내려가는 두 번째, 세 번째 행을 출력하는 방식입니다. 

 

For Each rCell In rMulti.Cells
Debug.Print rCell.Address, rCell.Value
Next rCell

 

엑셀 Excel VBA 사용자가 선택한 영역 값, 셀 주소 정보 알아 내는 방법

 

만약 행과 열의 출력 순서를 바꾸고 싶다면 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

 

엑셀 Excel VBA 사용자가 선택한 영역 값, 셀 주소 정보 알아 내는 방법

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 영역 선택하는 여러가지 방법
엑셀 VBA 참조하는 여러가지 방법
엑셀 VBA 색상 변경하는 가지 방법
엑셀 VBA 데이터 검색해서 찾기
셀 VBA 마지막 행과 열의 찾기
반응형
Posted by 녹두장군1
,