이전 글에서 워크시트를 숨기는 메서드와 보호하는 메서드에 대해 알아보았습니다. 이번에는 엑셀 시트에서 데이터가 입력된 셀의 범위를 알아내는 UsedRange 속성에 대해 알아보겠습니다.
엑셀 VBA 워크시트 숨기기 및 보호 메서드 - Visible, Protect
1. UsedRange 속성
UsedRange 속성은 워크시트에서 사용되고 있는 즉, 데이터가 입력되어 있는 위치를 파악해 전체 범위를 알려줍니다.
이 속성은 그림이나 도형이 차지하는 영역은 사용 범위로 인식하지 않습니다. 또한, 셀에 보이지 않는 공백 등이 입력되어 있는 경우도 사용 중인 셀로 인식하며, 사용된 셀 사이의 공백 셀도 범위에 포함하여 알려줍니다.
따라서, 사용되지 않은 셀을 제외한 사용된 셀을 구분하여 선택하고자 하실 때는 Range 개체의 CurrentRegion이나 End 속성을 이용하여 범위를 설정하도록 사용하는 것이 좋습니다.
SpecialCells 속성을 이용하여 원하는 조건에 맞는 셀을 선택할 수도 있습니다.
엑셀 데이터를 Table로 사용하는 것을 VBA로 구현 - CurrentRegion
VBA Range의 SpecialCells 속성 이용하기
2. 예제로 확인
이전에 사용한 가계부에서 수입 및 지출 합계를 따로 만들어 표를 두 개 구성하였습니다. ([그림 1] 참조)
VBE 창을 열고 모듈을 하나 생성하고 다음과 같이 코드를 작성합니다.
Public Sub 사용범위()
ActiveSheet.UsedRange.Select
End Sub
코드를 실행하면 A1 셀부터 H16 셀까지 모두 선택됩니다.
만약 수입 및 지출 합계표만을 선택하고자 할 때는 CurrentRegion 메서드를 사용할 수 있습니다.
모듈을 생성하고 다음과 같이 코드를 작성합니다.
Public Sub 합계표()
Range("G2").CurrentRegion.Select
End Sub
CurrentRegion 메서드를 사용하여 G2 셀에 연속적으로 데이터가 입력된 셀들을 선택하도록 하여 수입 및 지출 합계표를 선택하였습니다. 실행해 보시면 수입 및 지출 합계표만 선택되는 것을 보실 수 있습니다.
'엑셀 > VBA' 카테고리의 다른 글
엑셀 VBA 일부 범위만 입력 가능토록 설정하는 속성 - ScrollArea (0) | 2021.12.24 |
---|---|
엑셀 VBA 시트에 입력된 수식 모두 숨기는 속성 - FormulaHidden (0) | 2021.12.23 |
엑셀 VBA 워크시트 숨기기 및 보호 메서드 - Visible, Protect (0) | 2021.12.22 |
엑셀 VBA 워크시트 삭제, 복사 및 이동 메서드 - Delete, Copy, Move (0) | 2021.12.21 |
엑셀 VBA 워크시트 활성화 및 선택, 추가 메서드 - Activate & Select, Add (0) | 2021.12.21 |