매일 같은 서식을 입히고 같은 열을 정렬하는 작업을 반복하다 보면 시간이 아깝다는 생각이 든다. 매크로 기록 기능을 쓰면 직접 한 동작을 그대로 저장해 두었다가 버튼 한 번으로 다시 실행할 수 있다.
코드를 한 줄도 몰라도 시작할 수 있다. 다만 저장 형식과 보안 설정, 실행 취소가 안 된다는 점을 모르고 쓰면 사고가 난다. 이 글에서는 기록부터 실행, 주의사항까지 정리한다.
1. 매크로 기록 준비
개발 도구 탭이 보이지 않으면 파일, 옵션, 리본 사용자 지정에서 개발 도구를 체크한다. 이후 개발 도구 탭의 매크로 기록을 누르면 이름과 바로 가기 키, 저장 위치를 정하는 창이 열린다. 이 창을 닫은 순간부터 하는 모든 동작이 기록된다.
| 설정 항목 | 설명 | 권장 |
|---|---|---|
| 매크로 이름 | 공백은 쓸 수 없다 | 동작을 알 수 있게 짓는다 |
| 바로 가기 키 | Ctrl과 영문자 조합 | 기존 단축키와 겹치지 않게 Ctrl+Shift 조합 |
| 저장 위치 | 현재 통합 문서 또는 개인용 매크로 통합 문서 | 특정 파일 전용이면 현재 통합 문서 |
2. 상대 참조로 기록하기
기본값은 절대 참조라 기록할 때 선택한 셀 위치를 그대로 기억한다. 그래서 데이터 위치가 달라지는 작업에서는 엉뚱한 셀에 서식이 입혀진다. 개발 도구 탭의 상대 참조로 기록을 켜고 시작하면 현재 선택한 셀을 기준으로 동작을 반복한다.
| 방식 | 동작 | 적합한 작업 |
|---|---|---|
| 절대 참조 | 항상 같은 셀을 대상으로 한다 | 고정된 양식의 서식 지정 |
| 상대 참조 | 선택한 셀 기준으로 이동하며 실행 | 데이터 위치가 달라지는 정리 작업 |
3. 저장, 실행, 보안
매크로가 들어 있는 파일은 xlsm 형식으로 저장해야 한다. 일반 xlsx로 저장하면 매크로가 사라진다. 실행은 개발 도구의 매크로 목록이나 Alt+F8로 하고, 바로 가기 키를 지정했다면 그 조합으로도 가능하다. 다운로드한 파일을 열면 콘텐츠 사용 경고가 뜨는데, 출처가 분명하지 않은 매크로 파일은 열지 않는 것이 원칙이다.
4. 기록해 두면 좋은 작업
| 작업 | 효과 |
|---|---|
| 머리글 서식과 열 너비 조정 | 보고서 양식을 일정하게 유지 |
| 필터 해제와 정렬 | 매번 같은 기준으로 정렬 |
| 인쇄 영역과 용지 설정 | 출력 전 설정 시간 절약 |
| 특정 시트 서식 초기화 | 새 월 데이터 입력 전 정리 |
이렇게 기록한 동작을 모아 버튼에 연결하면 비전문가도 다루기 쉬운 양식을 만들 수 있다. 개발 도구의 삽입에서 단추를 넣고 매크로를 지정하면 된다. 기록한 내용이 부족하다고 느껴지면 그때 VBA 편집기에서 코드를 열어 조금씩 고치면 된다.
5. 매크로가 안 될 때 확인할 것
녹화한 매크로가 기대와 다르게 동작하면 대부분 기록 방식이나 실행 환경 때문이다. 오류 메시지가 뜨지 않더라도 결과가 이상하다면 아래 항목을 순서대로 점검한다. 특히 다른 사람의 PC에서 파일을 열었을 때 매크로가 막히는 경우가 많다.
| 증상 | 원인 | 해결 |
|---|---|---|
| 매크로가 목록에 보이지 않는다 | 매크로가 저장된 파일이 열려 있지 않음 | 해당 xlsm 파일을 열고 다시 확인한다 |
| 실행해도 아무 일도 일어나지 않는다 | 콘텐츠 사용을 누르지 않아 매크로가 차단됨 | 보안 경고줄에서 콘텐츠 사용을 선택한다 |
| 엉뚱한 셀에 서식이 입혀진다 | 절대 참조로 기록됨 | 상대 참조로 기록을 켜고 다시 녹화한다 |
| 저장 후 매크로가 사라졌다 | xlsx 형식으로 저장함 | xlsm 형식으로 다시 저장한다 |
핵심정리
- 개발 도구 탭을 켜고 이름과 단축키를 정한 뒤 기록한다.
- 위치가 달라지는 작업은 상대 참조로 기록한다.
- 매크로가 있는 파일은 xlsm으로 저장하고 출처가 불분명한 파일은 열지 않는다.
- 실행 전 원본을 복사해 두고 복사본에서 먼저 시험한다.
다음 글에서는 데이터 유효성 검사로 입력 오류를 막고 드롭다운 목록을 만드는 방법을 정리한다. 막히는 부분이 있다면 댓글로 남겨 주면 예제로 다루겠다.
이 글의 표와 수식 예제에 쓰인 데이터는 설명을 위해 만든 가상 예시입니다.

