Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 시트에서 데이터 셀 영역 구하기

엑셀(Excel)/VBA
반응형

VBA 프로그램을 하다 보면 자주 사용하는 코드들이 있습니다. 이런 코드들 중에 하나가 셀 영역을 구하는 함수입니다. 사용자 정의 함수나 매크로로 작업할 때 제일 먼저 해야 할 일이 엑셀에 있는 값을 가져오는 것이니까요. 그러려면 워크시트에서 값이 차지하고 있는 영역을 알아야 합니다. 그 때 사용하는 함수를 알아 보겠습니다.

 

샘플 화면은 아래와 같습니다. 그림으로 데이터 영역은 A1 ~ C8 입니다.

엑셀 VBA 시트에서 데이터 셀 영역 구하는 방법

 

워크시트에서 사용하고 있는 데이터 영역을 가져오기 위한 함수는 속성은 ActiveSheet.UsedRange 입니다. 리턴 받은 영역 객체에서 Address() 함수를 이용하면 절대 주소를 알아 낼 수 있습니다. 아래 소스는 이렇게 알아 온 절대 주소를 메시지 박스에 출력하는 것입니다.  

 

Sub RangeInfo()
    Msgbox ActiveSheet.UsedRange.Address()
End Sub

 

 

위의 소스를 실행한 결과 입니다. 예상했던 것과 같은 결과를 출력하고 있죠. 단지 절대값으로 표현되어서 나오네요.

엑셀 VBA 시트에서 데이터 셀 영역 구하는 방법

 

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀(Excel) VBA – 워크시트(Worksheet) 개체 시트 관리하기
엑셀 VBA 영역 선택하는 여러가지 방법
엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법
엑셀 VBA 시트 테두리 그리는 방법
셀 VBA 마지막 행과 열의 찾기

 

 

¤ R1C1 참조 방식 영역 알아 오기

 

R1C1 참조 방식은 매크로 프로그램에서 자주 사용하는 방식입니다. 기본적인 셀의 위치 참조는 A1 방식을 사용합니다. A 는 열을 알파벳순으로 1 은 행을 숫자로 표현해서 위치를 지정하죠. R1C1 “R” 이 행을, “C” 가 열을 나타냅니다. 그러니까 R 뒤에 있는 수가 행 번호 이고 C 뒤에 있는 수가 열 변호가 되는 것이죠. R Row, C Column 의 줄임 말입니다.

 

A1 방식과 같이 영역을 가져오는 함수는 Address() 를 사용하는데 R1C1 방식으로 계산한 영역값을 가져오기 위해 상수를 넘기고 있습니다. 상수 값은 ReferenceStyle 변수에 xlR1C1 을 넘기면 됩니다.

 

Sub RangeInfoR1C1()
   Msgbox ActiveSheet.UsedRange.Address(ReferenceStyle:=xlR1C1)
End Sub

 

 

아래 그림은 위의 소스를 실행한 결과 입니다. A1 R1C1 으로 보기 때문에 데이터의 오른쪽 끝인 C3 C -> R8, 3 -> C3 가 됩니다.

엑셀 VBA 시트에서 데이터 셀 영역 구하는 방법

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀(Excel) VBA – 워크시트(Worksheet) 개체 시트 관리하기
엑셀 VBA 영역 선택하는 여러가지 방법
엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법
엑셀 VBA 시트 테두리 그리는 방법
셀 VBA 마지막 행과 열의 찾기
반응형
Posted by 녹두장군

댓글을 달아 주세요