본문 바로가기
WeekdayLife/excel

[엑셀] 매크로 사용하기 - 상대참조 vs 절대참조

by JO_i 2016. 12. 13.

엑셀 매크로 사용하기 - 상대참조 vs 절대참조

매크로나 VBA 나 똑같은 말이라고 생각하는게 편할 수 있다.

매크로 녹화 기능만 사용해도 많은 부분을 해결할 수 있다.

 

녹화를 할때, 처음 하는 사람은 상대참조버튼을 보고 고민을 하게 되는데, 엑셀의 다른 많은 버튼 처럼 별거 아니다. (라고 생각하면 편하다.)

 

일단 매크로를 통해서 무엇을 하고 싶은지 결정해보자.

아래 조건이라고 해보자

 

 

1. 셀에 노란색을 칠하고 싶다.

2. 노락색을 칠하고 싶은 셀은 주소가 항상 일정하다. (C2라고 가정하자.)

 

아래 그림처럼 녹화를 하면 간단하다.

상대참조 버튼은 누르지 않은 상태이다.

잘보면, 녹화를 시작하고 나서, 왼쪽으로 두칸 움직인 다음 노란색을 칠했다.

 

하지만 매크로를 실행하면, 왼쪽으로 두칸 움직인 내용은 무시된다.

즉 어느 셀에서 클릭하든 C2 셀로 이동하게 된다.

컴활1급 매크로 시험문제에서 잘 기억나지 않지만

"어느 위치에서 실행해도 결과가 동일하게 하시오" 라는 조건이 문제에 적혀있는 걸 본 사람이 있을 것이다.

(문구가 정확하지 않을 수 있습니다.)

 

그게 상대참조로 하지 말라는 의미였던 것으로 기억된다.

 

 

 

그럼 상대 참조를 누르고 녹화를 해보자.

내가 하고자 하는 조건은 아래와 같다고 하자.

1. 셀에 노란색을 칠하고 싶다.

2. 내가 위치한 열에서 왼쪽으로 두칸 옮긴 셀에노란색을 칠하고 싶다.

나의 위치가 항상 변하고, 색이 칠해질 셀의 주소도 항상 변한다.

 

방법은 매우 간단하다.

상대참조로 기록 버튼을 누르고 동일하게 녹화를 진행하면 된다.

* 편의상 나는 이름도 바꾸지 않고, 단축키도 설정하지 않았으나, 실제 사용에서는 다른 기능도 활용하시길 바란다.

* 매크로를 실행하는 단축키는 ALT + F8 이다. 외워두면 편하다.

 

 

 

두개 매크로 사이에는 어떤 차이가 있을까.

코드를 살펴보자.

아래 그림을 한번 보자.

 

매크로1이 절대참조, 매크로2가 상대참조이다.

(다른 셀 서식 지정 명령들은 편의상 삭제했다.)

 

절대참조(매크로1)에서는 RANGE("C2")를 통해 C2셀을 선택한다.

그리고 컬러를 지정하는 옵션을 준다.

 

반면,

상대참조(매크로4)에서는 ACTIVECELL 이라는 가변 조건을 주어, 현재 선택된 셀의 위치를 담는다.

그리고, OFFSET 명령으로 왼쪽으로 두칸을 이동한다.

나머지 색을 지정하는 명령은 동일하다.

 

 

 

회사에서 쓰는 많은 반복적인 업무는 매크로를 통해 편하게 할 수 있다.

단, 매번 던져지는 자료의 형태가다르다면, 그냥 노가다 하는게 편할 수 있다.