엑셀을 자주 쓰는 사람도 엑셀의 다양한 기능을 활용하기가 쉽지는 않다. 늘 하던 방식대로만 해도 충분하다고 느껴지기도 하고, 엑셀의 함수를 이용해 계산을 하는 것보다 내 책상 위의 계산기를 두드리는 게 더 빠를 때도 있다. 하지만 비슷한 종류의 계산을 계속해서 수동으로 하다 보면 무아지경에 이르게 되면서 바보 같은 자신을 발견하고는 자기비하에 빠지는 경우도 종종 생긴다. 엑셀에서 매크로 기능을 익혀두면 한 단계 업그레이드 했다고 자부해도 된다. 그리고 일명 ‘노가다’일 수 있는 작업이 자동화라는 도구로 이리도 간단하게 해결되는 걸 보면 현대 사회를, 마이크로 소프트를, 엑셀을 더욱 사랑하게 될지도 모른다.
반복되는 것을 주목하라
매크로는 일련의 반복되는 작업을 일괄로 처리하는 것을 말한다. 엑셀에서의 매크로는 Visual Basic 모듈에 명령과 함수를 모아 저장한 후 해당 작업이 필요할 때 실행하도록 만들어져 있다. 매크로는 Microsoft VBA(Visual Basic for Applications) 프로그램 언어로 기록되며, Visual Basic Editor로 매크로를 직접 작성할 수도 있다.
흔히 매크로와 VBA는 같은 것으로 오해되기도 하고 용어가 섞여서 사용될 때가 많은데 매크로는 일정한 작업을 반복하는 것을 칭하는 용어인데 반해 VBA란 일종의 프로그래밍 언어이다. VBA는 Visual Basic For Application의 약자로 엑셀이나 워드, 파워포인트 등의 응용 프로그램을 위한 비주얼 베이직 언어이다. 뭐, 이런 차이는 몰라도 된다. 일단 우리가 사용하는 것은 매크로일 뿐이라는 것만 유념해두자. 더 큰 VBA의 세계를 알고 싶다면 VBA의 전문서적을 참고하시길.
판매왕 순위 매기기
매주, 매월, 매년 반복되는 문서들이 있다. 매주, 매월, 매년 같은 양식으로 데이터만 변경되는 문서들이 얼마나 많은가. 비슷한 계산을 매번 해야 하는 일은 고역이다. 자, 이번 달 판매 왕을 한눈에 손쉽게 만들어주는 매크로를 만들어보자. 여기 청소로봇을 판매하는 주식회사 1박 2일 사원들의 판매 실적 데이터가 있다.
이제 판매순위를 자동으로 만드는 매크로를 만들어보자. 판매순위를 입력할 셀에 커서를 놓고 [보기] 메뉴를 클릭하면 매크로란 메뉴창이 뜬다. 매크로 메뉴를 클릭하고 매크로 기록하기를 누르면 다음과 같은 창이 뜬다. 매크로 이름을 작성하고 바로 가기 키를 입력한 후 작성하는 매크로에 대한 간단한 설명도 입력한다. 여기서 바로 가기 키에 입력할 수 있는 문자는 키보드에 있는 임의의 문자를 말한다. @나$%와 같은 특수 문자나 숫자는 사용할 수 없다. 매크로가 들어있는 통합문서가 열려 있으면, 매크로 실행의 바로 가기 키가 기본 바로 가기 키보다 우선한다.
확인을 누르면 매크로 기록이 시작된다. 우리가 여기서 구하고자 하는 함수는 RANK이다.
수식입력창의 앞에 있는 fx를 누르면 사용하고자 하는 함수의 목록을 볼 수 있다. 그 곳에서 RANK를 클릭하면 위와 같은 함수 인수를 입력하는 창이 뜬다. 수량을 기준으로 판매순위를 매길 수 있으니, Number는 순위를 구하려는 수를 입력하면 된다. 마우스로 원하는 셀을 클릭해주면 자동 입력된다. Ref는 순위를 구하려는 범위를 입력하는 곳이다. 이승기의 수량부터 강호동의 수량까지이다. Order는 순위를 정할 방법을 지정하는 수로 0을 넣거나 생략하면 내림차순으로, 0이 아닌 값을 지정하면 오름차순으로 순위가 정해진다. 여기서는 내림차순의 순위가 필요하니까 0을 입력하거나 생략하면 된다. 이런 식으로 함수를 입력하고 난 후 매크로의 기록 중지를 누르면 매크로 기록 작업이 끝이 난다. 이런 식으로 작업한 내용은 앞서 말한 것처럼 VBA 코드로 기록 되어진다. 이렇게 엑셀의 내부 작업을 VBA 코드로 기록한 것이 매크로이다.
매크로의 실체
이것이 지금까지 만든 순위 매기기의 매크로의 실체이다. 알 수 없는 몇 개의 코드로 순위를 매기게 하는 작업이 기록된 것이다. 어떤 식으로 활용이 되는지 알아보려면 위의 엑셀 작업에서 순위를 몽땅 지운 후에 매크로에 입력한 바로 가기 키 Ctrl+h를 눌러보자. 정말 눈 깜짝할 새에 순위가 만들어지는 것을 확인할 수 있다. 이제 순위를 매길 때에는 수식을 입력할 필요없이 내가 입력한 매크로의 단축키만 누르면 된다!
매크로 만들기 전 유의사항
MS excel 2007의 경우 매크로나 자체 속성 및 VBA에 관련 메뉴를 숨기고 있다. 매크로를 사용하기 전에 이것을 활성화 시키는 것이 바람직하다. 활성화 방법은 다음과 같다.
엑셀2007의 간판 버튼을 누르면 나오는 Excel 옵션에 들어가서 리본 메뉴에 개발 도구 탭 표시를 클릭해준다. 그러면 개발 도구 메뉴의 매크로 메뉴들을 활성화 할 수 있다.
매크로 아이콘으로 공유하기
사실 내가 만든 매크로의 단축키를 타인과 공유하기란 번거로운 일이다. 하지만 한번 만든 매크로는 공유가 가능하다는 것이 서류 작업에 치인 직원들의 기쁨이요, 희망이 될 수 있다. 개발도구 메뉴 중 삽입을 누르면 다양한 양식 컨트롤이 있다. 이것들을 활용해 다양한 매크로 아이콘을 만들 수 있다. 이렇게 버튼을 만들어 놓으면 누가 열어서 작업을 하더라도 효율성을 높일 수 있다.
이제 매크로를 실행시키는 방법은 세가지가 됐다. 첫째 자신이 입력한 바로 가기 키를 누르는 것, 둘째 메뉴에서 매크로 실행을 선택하는 법, 셋째 매크로와 연결된 아이콘을 누르는 것이다.
매크로와 VBA의 세계
VBA가 프로그래밍 언어이기 때문에 일반 사용자에게는 어렵게 느껴질 수 있다. 하지만 비주얼베이직은 프로그래밍 언어 중에서 가장 사용하고 배우기 쉽다고 한다. 사실 엑셀 VBA를 배우려는 사람들의 목적은 VBA 코드의 의미를 하나하나 알고 싶은 것보다는, 실무에서 엑셀의 기능을 자동화하여 업무를 효율화하는 데 있다. 활용 가능한 매크로나 VBA 예제들을 무작정 따라 하다 보면 방법을 터득하게 될 것이다.@