Excel에서 작업할 때 셀 범위를 선택한다는 조작은 거의 반드시라고 해도 좋을 정도로 발생합니다. 자주 수행하는 작업만큼 VBA로 자동화하는 장점이 많다고 할 수 있습니다. VBA에서 셀을 선택하는 경우 검색해 보면 Range와 Cells라는 객체와 속성을 찾을 수 있습니다. 하지만 도대체 뭐가 다른지 구분하기가 어렵습니다. 이 기사에서는 「Range란 무엇인가」 나 「Range와 Cells의 차이」 라고 하는 기본적인 내용으로부터 다음과 같이 응용적인 내용까지 해설합니다.
Range 는 셀 범위를 지정할 때 사용하는 객체입니다. 예를 들어 A3에서 B5의 셀을 빨강으로 하고 싶을 때, A3에서 B5까지 드래그하여 범위 지정하고 나서 빨강으로 변경합니다. 그 범위를 지정하는 조작을 코드로 실현합니다. Range로 선택한 후에는 물론 셀의 색뿐만 아니라 문자색을 바꾸거나 테두리를 넣을 수 있습니다. 범위를 선택하는 객체로는 Cells 속성도 있습니다. 무엇이 다른지 비교하면서 보겠습니다.
Range는 Cells와 비교하면 다음과 같은 특징이 있습니다.
반면 셀은 다음과 같은 특징이 있습니다.
그 밖에도 있습니다만 이 정도가 주된 특징입니다.
한가지 기능을 알았는데, 어떤 경우에 어느 쪽을 구분하는지를 보겠습니다.
장표나 전표라면 레이아웃이 바뀌지 않기 때문에 Range가 적합합니다. 실행하지 않으면 범위가 결정되지 않으면 셀을 사용합니다.
A3에서 B6으로, C9에서 D12와 같은 여러 범위를 선택하는 것은 Range에서만 가능합니다.
무조건 이러한 지정을 하는 경우, Cells를 사용합니다.
이 정도로 실제 사용 예를 다음에서 살펴 보겠습니다.
빨리 Range의 사용법을 순서대로 살펴 보겠습니다.
하나만 셀을 선택하고 싶을 때, 이와 같이 됩니다.
[서식]
[사용 예]
[실행 결과]
VBE에서 실행하면 A3이 선택되었음을 알 수 있습니다.
배경색을 붙일 때는 이렇습니다.
[사용 예]
[실행 결과]
방금 전에 하나의 셀을 선택했지만 이번에는 시작과 끝을 지정하여 범위를 지정합시다.
[서식]
[사용 예]
[실행 결과]
물론, 방금 전의 예를 응용해, 범위내를 착색하는 것도 가능합니다.
시작 셀 1에서 종료 셀 1, 시작 셀 2에서 종료 셀 2라는 느낌으로 여러 범위를 선택할 수 있습니다.
[서식]
[사용 예]
[실행 결과]
2개 이상의 범위도 선택할 수 있습니다.
범위에 이름을 지정할 수 있으며 Range로 이름을 지정할 수 있습니다. A3에서 B5를 드래그하여 뒤집은 후 마우스 오른쪽 버튼을 클릭하고 "이름 정의"를 선택합니다.
그래서 이름을 '테스트'라고 합니다. 그 명명된 범위를 Range로 지정하는 것도 가능합니다.
[서식]
[사용 예]
[실행 결과]
Range 메서드에서 변수를 사용하여 범위를 선택할 수도 있습니다.
[사용 예]
[실행 결과]
그러나 변수를 사용하여 가변 범위를 지정할 때는 Cells를 사용하는 것이 일반적입니다.
[사용 예]
실행 결과는 동일합니다.
한 번 선택한 범위의 크기를 변경할 수 있습니다. A3에서 B6까지 4행 2열 범위 선택을 5행 5열로 확장
[서식]
[사용 예]
[실행 결과]
실행 후의 결과 밖에 보이지 않기 때문에 동작을 실감할 수 없습니다만, A3에서 B5의 범위가 A3을 기점으로 5행 5열이 된 것을 알 수 있습니다.
A3에서 B6까지 지정한 범위를 크기는 그대로 움직일 수 있습니다.
[서식]
[사용 예]
[실행 결과]
이것도 결과만 확인합니다. A3에서 B5의 범위가 A3을 기점으로 2행 3열 움직인 것을 알 수 있습니다.
Range 객체에서 Value 속성을 호출하여 셀의 값을 가져오거나 변경할 수 있습니다.
샘플 코드로 확인합시다.
지정된 셀 범위를 지우려면 Range 객체의 Clear 메서드를 사용합니다. 클리어하는 대상에 따라 사용하는 메소드가 바뀝니다. 목적에 맞는 방법을 사용합시다.
방법설명
Clear | 모두 |
ClearComments | 댓글 |
ClearContents | 값과 수식 |
ClearFormats | 서식 |
ClearNotes | 댓글 |
ClearOutline | 개요 |
ClearHyperlinks | 하이퍼링크 |
ClearHyperlinks의 경우 Excel2010 이상에서 사용할 수 있습니다. 샘플 코드로 확인합시다.
다음과 같은 상태를 지웁니다.
실행 결과:
지정한 범위에 있는 값이 포함되어 있는지 검색하고 싶을 수 있습니다. 그런 경우 Find 메서드를 사용하여 검색합니다.
지정한 범위를 순서대로 정렬하고 싶을 수 있습니다. 이 경우 Sort 메서드를 사용하여 정렬합니다.
이렇게 생각하는 사람은 많을 것입니다. VBA의 용도는 다양하며,
등이 예상됩니다. 확실히, 업무 효율화는 어느 기업도 목표로 하고 있어, 수요가 높은 것처럼 보입니다. 다만, VBA만 할 수 있는 것이 강점이 될까라고 하면, 조금 의문이 있습니다. VBA는 기본적으로 Excel에서만 사용할 수 있습니다. 그러나 최근에는 사내 서식을 스프레드 시트로 관리하는 기업도 늘어나고 있으며, 향후 엑셀 자체의 수요가 줄어들 가능성도 생각할 수 있습니다. 그렇게 되어 버리면, VBA를 공부해도 한계가 있기 마련입니다. 그렇게 생각하면 장래에 VBA의 수요는 그다지 높지 않다고 할 수 있습니다.
왜냐하면 누구나 잘하는 세상이 되었기 때문입니다. 그러니 남들보다 잘하기 위함이라기 보다 남들만큼 할 수 있기 위해 공부한다고 생각해야 합니다. 치열한 경쟁 사회로 나오기 직전인 대학교 졸업반 여러분들에게 특히 말씀 드리고 싶습니다. 공부는 대학교 때 끝나는 것이 아닙니다. 평생 공부할 각오로 사회에 나와야 하며 열심히 준비한 만큼 남들보다 고생을 덜 할 뿐 어쨌든 다같이 공부해야 합니다.
프로그래밍 (또는 코딩) 공부는 전공을 불문하고 모두가 공부해야 합니다!
댓글 영역