강좌(교육)

[엑셀 VBA강좌] VBA_11 엑셀의 주요 개체의 이해 : Range Object - CurrentRegion, UsedRange 속성엑셀교실

조아0415 2016. 12. 15. 22:08
[엑셀 VBA강좌] VBA_11 엑셀의 주요 개체의 이해 : Range Object - CurrentRegion, UsedRange 속성엑셀교실

 

이번 시간에는 Range 오브젝트를 생성하는 방법 중 CurrentRegionUsedRange 속성에 대해 살펴보도록 하겠습니다.

 

 

CurrentRegion 속성

 

CurrentRegion이란 현재 선택된 셀을 중심으로 하여 빈 행과 빈 열로 둘러싸인 영역을 말합니다.

아래 화면을 보시면서 이해하시기 바랍니다.

 

 

셀 포인터가 A1 셀에 위치하고 있습니다.

이 경우 CurrentRegion, 즉 현재 영역은 어디가 될까요?

위쪽과 왼쪽으로는 더 이상 갈 곳이 없고, 오른쪽과 아래쪽 방향으로 빈 행과 빈 열이 나올 때까지 따라가 보면...

F열과 6행을 만나게 됩니다. 따라서 A1 셀의 CurrentRegion은 빈 행/열을 만나기 바로 전까지의 영역인 A1:E5 영역이 되는 것입니다.

 

 

 

특정 셀에 대한 현재 영역을 선택하려면 다음과 같이 표현하면 됩니다.

이 때 Range("D3") 부분은 굳이 D3 셀이 아니더라도 상관 없이 지정하면 됩니다.

 

 

 

지정한 범위에 테두리선을 그릴때에는 BorderAround 메서드를 사용하고 선의 굵기는 Weight 인수를 통해 지정합니다.

이렇게 하다 보면 이런 메서드와 인수들을 어떻게 다 외워 사용하느냐고 의문을 가지리라 봅니다.

절대로 모두 외울 필요가 없습니다.

엑셀에는 아주 유용한 매크로 기록기가 있기 때문에 이 매크로 기록기를 사용하여 괘선을 그리는 과정을 기록한 다음, 작성된 코드를 보고, 테두리선과 관련한 메서드와 속성을 참고하시면 됩니다.

이 방법으로 하면 영역에 테두리선을 그리는 것도 매우 간단합니다.

 

조금 더 응용력을 발휘하여 표의 타이틀 부분을 제외한 영역에만 색상을 지정하는 것을 만들어 볼까요?

그렇게 하려면 CurrentRegion 속성 외에도 Offset, Resize 속성 등을 조합해서 사용해야 합니다.

아래 코드를 잘 보시기 바랍니다.

 

 

위 코드를 실행하면 아래 그림과 같은 결과가 나타납니다.

 

 

 

 

 

UsedRange 속성


CurrentRegion 속성을 사용하면 특정한 셀에 인접해 있는 영역을 구할 수는 있습니다만, 떨어져 있는 영역에 대해서는 접근할 수 없습니다.

다음과 같이 떨어져 있는 영역을 포함하여 워크시트 중에서 사용된 모든 영역을 선택하려면 UsedRange 속성을 이용하면 됩니다.

여기서 한 가지 유의할 점은 앞에서 설명드린 CurrentRegion 속성은 Range 오브젝트의 하위 속성인데 비해 UsedRange 속성은 Worksheet 오브젝트에 속한 속성인 점에 주의하시기 바랍니다.

즉, Range("A1:E100").Select 와 같은 형태로는 사용할 수 없다는 얘기입니다.

 

 

 

위 코드를 실행해 보시면 위와 같이 영역이 선택되어 지는 것을 확인할 수 있습니다.