본문 바로가기

VBA 범위 선택하기 5탄 (UsedRange, CurrentRegion, entirerow)

택이형. 2022. 12. 18.

 

UsedRange, CurrentRegion, entirerow는 연속된 범위를 설정하는 방법으로 유용하게 사용될 수 있어요. 다양한 예시를 통해 학습하시면 VBA실력이 한단계 업그레이드 될거에요.

 

 

UsedRange, CurrentRegion, entirerow를 사용하여 범위설정하기

 

 

오늘은 VBA 범위 선택하기 5탄 UsedRange, CurrentRegion, entirerow을 통한 범위 선택에 대해 알아보도록 할게요. 범위 선택의 방법은 매우 다양하므로 1~4탄을 숙지하고 오시면 큰 도움이 될 거예요.

 

VBA 범위 선택하기 3탄 (Union, Intersect 사용법)

안녕하세요. 택이형과 회사에서 VBA로 생존하기 택이형입니다. 오늘을 VBA 범위 선택하기 3탄 Union, Intersect를 사용한 범위지정에 대해 알아보도록 하겠습니다. 1,2탄을 학습하지 않으셨다면 아래

lst914.tistory.com

 

VBA 범위 선택하기 4탄 (Specialcells 사용법)

안녕하세요. 택이형과 회사에서 VBA로 생존하기 택이형입니다. 오늘은 VBA 범위 선택하기 4탄 Specialcells를 사용한 범위지정에 대해 알아보도록 할게요. 범위 선택의 방법은 매우 다양하므로 1~3탄

lst914.tistory.com


VBA 범위 선택 목차

 

1. VBA 범위 선택하기 1탄 : Range로 범위 선택
2. VBA 범위 선택하기 2탄 : Cells와 Resize, Offset의 조합을 통한 범위 선택
3. VBA 범위 선택하기 3탄 : Union, Intersect을 사용한 범위 선택

4. VBA 범위 선택하기 4탄 : Specialcells를 통한 범위 선택
5. VBA 범위 선택하기 5탄 : UsedRange, CurrentRegion, entirerow(column)을 통한 범위 선택
6. VBA 범위 선택하기 6탄 : Areas를 사용한 범위 선택

 


UsedRange, CurrentRegion, entirerow를 알아보자

usedRange, CurrentRegion, entirerow(entirecolumn)에 대해 하나씩 알아보도록 할게요.

 

usedRange

엑셀에서 사용되고 있는 영역으로 인식되는 부분을 범위로 설정하는 것이 usedRange 속성이에요. usedrange속성을 사용하게 되면 데이터가 들어가 있는 시작 위치와 마지막 위치까지의 행과 열이 범위로 선택되죠.

 

usedRange를 사용한 범위 설정
usedRange를 사용한 범위 설정

 

 

CurrentRegion

선택된 셀에서 연속된 데이터의 영역을 설정하는 것이 currentRegion 속성이에요. 아래 학생수 표를 아무 곳이나 선택한 후 currentRegion 속성을 사용하면 표 전체 범위가 선택되는 것을 볼 수 있어요.

 

currentregion을 사용한 범위 설정
currentregion을 사용한 범위 설정

 

entirerow

지정된 범위를 포함하는 행 전체를 선택하는 역할을 하는 것이 entirerow 속성이에요.

즉, "B2"셀만 선택 후 entirerow 속성을 적용시키면 2행 전체가 선택되게 돼요. (entirecolumn도 동일하게 작동됩니다.)

 

entirerow를 사용한 범위 설정
entirerow를 사용한 범위 설정

 

 

오늘 학습하는 usedRange, CurrentRegion, entirerow(entirecolumn)는 다른 범위 설정 방법보다 수월하게 끝날 거 같은 느낌적인 느낌이 오고 있는데요. 활용 편에서 조금 더 깊이 있게 다루어 보도록 할게요.

 


 활용 : usedRange, CurrentRegion, entirerow를 사용한 데이터 삭제!

 

지금까지 예시로 사용해 왔던 학생수 테이블이 다시 재등장하였어요! 예시를 가지고 usedRange, CurrentRegion, entirerow를 사용하여 데이터 내용을 삭제해 보도록 할게요.

 

작업 예시 파일! 이젠 익숙하시죠?
작업 예시 파일! 이젠 익숙하시죠?

 

자 그럼 시작해 볼까요! 먼저 UsedRange를 사용하여 범위를 선택 후 데이터를 삭제해 보도록 하겠습니다.

 

Sub del()

Dim rng As Range
' 범위를 담을 변수 선언

Set rng = ActiveSheet.UsedRange
' 활성화된 시트에서 사용된 범위를 rng변수에 반영

rng.Delete
rng.Clear
' 삭제를 위한 매서드로 Delete, Clear가 사용됨.

End Sub

 

다음과 같은 코드를 실행하면 어떻게 될까요?? Delete, Clear 둘 중 어떤 메서드를 사용하더라도 전체 데이터가 삭제되게 되죠. 세부적으로 살펴볼게요.

 

Set rng = ActiveSheet.UsedRange는 현재 활성화되어있는 워크시트에 사용된 범위를 rng라는 변수에 담는 작업인데요.

변수로 담아서 사용하는 이유에 대해서는 매번 말씀드리고 있으니 궁금하시면 아래 링크로 확인해 주세요!

 

VBA 변수? 변수의 의미와 자료형, 변수에 데이터 넣는 방법은!?!?

안녕하세요. 택이형과 회사에서 VBA로 생존하기 택이형입니다. 오늘은 VBA의 변수에 대해 정리해 보고자 합니다. "변수란 무엇인지?", "변수의 자료형은 어떠한 것들이 있는지?", "변수는 어떻게 사

lst914.tistory.com

 

 

rng.Delete와 rng.Clear는 사실 같은 동작을 나타내는 매서드라고 이해하시면 될 것 같은데요. 선택된 rng 범위를 아예 흔적도 남지 않도록 삭제하는 매서드예요. 그럼 왜 두 가지를 다 적어놓았을까요?

 

바로 Clear 매서드의 효율성이 보다 좋기 때문인데요. Clear은 아래와 같은 형태로 필요에 따라 다르게 사용될 수 있어요.

 

ㆍ Clear : 셀 내용 및 모든 서식 삭제

 Clearcontents : 셀 내용만 삭제

Clearformats : 셀 서식만 삭제

Clearcomments : 해당 셀에 입력된 메모 삭제

 

결국 rng.Clear를 rng.Clearcontents로 바꾸면 서식은 남겨있는 채로 데이터 내용만 삭제가 되며, rng.Clear를 rng.Clearformats로 바꾸면 데이터는 남아있는 상태에서 서식만 삭제된다는 것이에요!  유용하게 사용될 수 있겠죠?

 

다음은 Currentregion을 사용하여 데이터를 삭제해볼 차례인데요. 코드를 보시죠!

Sub del()

Dim rng As Range
' 범위를 담을 변수 선언

Set rng = Range("B2").CurrentRegion
' B2셀로부터 연속된 범위를 rng변수에 반영

rng.delete
rng.Clear
' 삭제를 위한 매서드로 Delete, Clear가 사용됨.

End Sub

 

위 코드와의 차이점이 보이시나요?  맞아요!  바로 rng 범위 설정 방법의 차이가 있어요.UsedRange를 사용하게 되면 sheet1의 데이터가 전부 삭제가 되는 반면에 CurrentRegion을 사용하게 되면 아래 이미지처럼 표만 삭제가 되는것이죠.

 

CurrentRegion을 이용하여 범위 설정 후 delete 진행 시 남는 데이터
CurrentRegion을 이용하여 범위 설정 후 delete 진행 시 남는 데이터

 

Set rng = Range("B2").CurrentRegion의 경우에는 B2셀부터 E11셀까지 표에 해당하는 범위를 설정해 주는데요. Range("B2", "E11")을 간략하게, 그리고 연속될 범위를 조정해줄 필요 없이 행열이 늘어나는 것을 자동으로 반영해 준다는 장점이 있어요. 이후에 사용된 Delete와 clear는 위에 사용된 방법과 동일한 것이니 생략토록 할게요!

 

마지막으로 entirerow를 사용해볼 차례인데요! 바로 코드를 보면서 설명드릴게요!

Sub del()

Dim rng As Range
' 범위를 담을 변수 선언

Set rng = Range("B10").EntireRow
' B10셀이 위치한 전체 행을 rng변수에 반영

rng.delete
rng.Clear
' 삭제를 위한 매서드로 Delete, Clear가 사용됨.

End Sub

 

이번에도 마찬가지로 rng범위의 설정 방법의 차이만 존재하는 것을 확인하실 수 있는데요. Set rng = Range("B10").EntireRow는 B10셀을 기준으로 그 행이 포함된 전체 행을 범위를 말해요. 즉, 8반이 위치한 모든 행이 선택된 것이죠. 이후 Delete 또는 Clear 매서드가 사용되면서 8반이 위치한 행은 삭제가 되고 전교생으로 표현된 데이터들이 10행에 위치하게 되는 것이죠.

 

entirerow로 설정된 범위가 삭제된 결과
entirerow로 설정된 범위가 삭제된 결과

 

이번 설정 범위는 개별적으로 사용한 예시로 설명드리다 보니 조금 쉽게 넘어간 느낌이 드는데요. 다양한 범위 설정 방법을 숙지하셔서 필요에 맞는 코드를 구축하는 연습을 하시면 실력 향상에 큰 도움이 될 거예요.

 

엑셀 VBA는 지식적인 측면이 아닌 기술적인 측면이 강하기 때문에 코드를 계속 짜 보면서 숙달해야 될 필요성이 있어요. 퇴근 후 힘들겠지만 30분씩만 투자하시면 회사에서 야근 없이 30분 일찍 퇴근할 수 있는 날이 올 거예요!  그때까지 파이팅!

 

▼▼▼함게 읽으면 좋은 정보▼▼▼

 

VBA 범위 선택하기 6탄! Areas를 사용한 범위 선택!!

UsedRange, CurrentRegion이 연속적인 범위를 설정하는 방법으로 주로 사용되었다면, Areas의 경우는 비연속적인 범위를 설정하는 방법으로 사용됩니다. VBA반복문과 궁합이 잘맞기 때문에 학습해 두시

lst914.tistory.com

 

 

VBA 범위 선택하기 4탄 (Specialcells 사용법)

『 Specialcells는 엑셀 VBA에서 약방의 감초같은 역할을 하는데요. 다양한 옵션을 사용할 수 있기때문에 범위선택을 위한 유용한 역할을 하고 있어요. 빈셀이나 수식이 입력된 셀 등 특수한 상황에

lst914.tistory.com

 

 

VBA 범위 선택하기 3탄 (Union, Intersect 사용법)

『 Union, Intersect를 활용하면 교집합과 합집합의 범위를 한번에 설정할 수 있어요. 특히 Union의 경우는 앞으로 변수들을 합치는 방법으로도 사용될 예정이니 꼭 완벽숙지하시기 바래요! 』 오늘을

lst914.tistory.com

 

VBA 범위 선택하기 2탄 (Cells, Offset, Resize 조합)

『 Cells, Offset, Resize를 활용하여 엑셀의 범위를 자유자재로 선택할 수 있어요. 각 속성이 가지는 특징과 예시를 통해 범위선택이 자연스럽게 익혀지도록 연습해 보세요. 』 오늘은 VBA 범위 선택

lst914.tistory.com

 

 

 

업무 자동화는 나의 가장 큰 무기가 되어줄 것이다.

댓글