매일 같은 셀 범위에 같은 서식을 입히는 작업, 그게 얼마나 많은 시간을 잡아먹는지 아는 분들이라면 엑셀 매크로 종류에 관심을 갖는 건 자연스러운 수순입니다. 결론부터 말씀드리면, 엑셀 매크로는 기록 매크로·VBA 서브 프로시저·함수 매크로·이벤트 매크로 네 가지로 나뉘며, 작업의 성격에 따라 고르는 유형이 달라집니다. 유형을 잘못 고르면 애써 만든 매크로가 데이터가 바뀔 때마다 오작동합니다. 어떤 기준으로 선택해야 하는지, 지금부터 함께 살펴보겠습니다.
엑셀 매크로란: 자동화의 기본 개념
매크로(Macro)는 반복적인 동작을 하나의 명령으로 묶어 단번에 실행하는 기능입니다. 예를 들어, 매주 월요일마다 원본 데이터를 붙여넣고 서식을 정리한 뒤 특정 시트로 이동하는 일련의 과정을 버튼 하나로 끝낼 수 있습니다. 엑셀에서는 매크로를 크게 두 가지 방식으로 만들 수 있는데, 마우스 동작을 녹화하는 방식과 코드를 직접 작성하는 방식입니다. 이 두 갈래에서 실무에서 쓰이는 네 가지 유형이 파생됩니다.
네 가지 매크로 종류와 각각의 특징
생성 방식과 실행 조건, 두 기준을 교차하면 아래 네 유형이 나옵니다. 각각이 어떻게 다른지 순서대로 살펴보시죠.
① 기록 매크로 (Recorded Macro)
마우스 클릭과 키 입력을 그대로 녹화해 재생하는 방식입니다. ‘개발 도구 → 매크로 기록’을 클릭한 뒤 원하는 동작을 수행하면, 엑셀이 그 과정을 VBA 코드로 자동 변환합니다. 코딩을 전혀 몰라도 만들 수 있다는 것이 가장 큰 강점입니다. 단, 녹화 당시 고정된 셀 주소와 행 수를 그대로 기억하기 때문에, 데이터 범위가 달라지면 엉뚱한 셀에 적용되는 문제가 생깁니다. 정해진 형식의 단순 반복에 가장 잘 맞습니다.
② VBA 서브 프로시저 (Sub Procedure)
VBA 편집기에서 직접 코드를 작성하는 방식입니다. 조건 분기(If-Then), 반복 루프(For-Next), 변수 등을 활용하면 행 수가 달라져도 유연하게 대응합니다. 실무 자동화의 대부분이 여기 해당하며, 기록 매크로로 뼈대를 잡고 코드를 수정하는 방식이 입문자에게 가장 효율적입니다. 값을 반환하지 않고 동작만 실행한다는 점에서 함수 매크로와 구분됩니다.
③ 함수 매크로 (Function Procedure / UDF)
VBA로 만드는 사용자 정의 함수(UDF, User-Defined Function)입니다. =MYFORMULA(A1)처럼 셀에서 직접 호출하며 계산 결과를 반환합니다. 엑셀 내장 함수로 처리하기 어려운 복잡한 로직을 수식 형태로 팀 전체가 공유할 때 유용합니다. 함수 삽입 대화상자에서도 불러 쓸 수 있어 접근성이 좋습니다.
④ 이벤트 매크로 (Event Macro)
특정 사건이 발생하는 순간 자동으로 실행되는 매크로입니다. 대표적인 이벤트로는 셀 값 변경(Worksheet_Change), 파일 열기(Workbook_Open), 셀 선택(Worksheet_SelectionChange)이 있습니다. 버튼 클릭 없이도 작동하기 때문에 입력 검증·자동 서식·실시간 대시보드 갱신에 활용됩니다. 다만 이벤트 내부에서 다시 이벤트가 발동해 무한 루프에 빠질 수 있으므로, 설계에 주의가 필요합니다.
레거시 유형: XLM 매크로
엑셀 4.0 시절 도입된 XLM(Excel Macro Language) 매크로도 분류상 언급이 필요합니다. 현재는 VBA에 자리를 내줬지만 오래된 기업 시스템에서 간혹 남아 있습니다. Microsoft는 보안 취약점을 이유로 XLM 실행을 기본 차단하는 방향으로 정책을 강화하고 있어, 레거시 파일을 열었을 때 XLM 경고가 뜨면 VBA로 재작성하는 것이 권장됩니다. 신규 작성은 사실상 의미가 없습니다.
유형별 차이 한눈에 비교
| 유형 | 생성 난이도 | 유연성 | 실행 방식 | 주요 용도 |
|---|---|---|---|---|
| 기록 매크로 | 쉬움 | 낮음 | 수동 (버튼·단축키) | 단순 반복 동작 |
| VBA 서브 | 중간 | 높음 | 수동 (버튼·단축키) | 조건부 자동화 |
| 함수 매크로 | 중간 | 높음 | 셀 수식 호출 | 사용자 정의 계산 |
| 이벤트 매크로 | 높음 | 매우 높음 | 자동 (이벤트 감지) | 실시간 반응형 처리 |
| XLM 매크로 | — | 낮음 | 수동 | 레거시 유지보수만 |
저장 위치로 보는 추가 분류: 개인용 매크로 통합 문서
매크로를 어디에 저장하느냐도 실무에서 중요한 구분입니다. 일반적으로는 현재 파일(.xlsm)에 저장하지만, 개인용 매크로 통합 문서(PERSONAL.XLSB)에 저장하면 엑셀 실행 시마다 숨겨진 형태로 자동 로드됩니다. 자주 쓰는 공통 유틸리티 매크로를 여기 두면 어떤 파일에서든 꺼내 쓸 수 있습니다. 매크로를 처음 설정하거나 신뢰 센터 옵션을 조정해야 할 때는 엑셀 매크로 설정 방법을 참고하시면 단계별로 따라하기 편합니다.
작업 성격에 따른 유형 선택 기준
선택 기준은 간단합니다. 작업 순서가 항상 동일하고 범위도 고정돼 있다면 기록 매크로로 충분합니다. 데이터 행 수가 매번 달라지거나 조건에 따라 처리 방식이 바뀐다면 VBA 서브가 필요합니다. 셀 수식처럼 쓰고 싶은 계산 로직은 함수 매크로, 사용자 입력에 즉각 반응해야 하는 기능은 이벤트 매크로를 고릅니다.
- 단순·정형 반복 작업 → 기록 매크로
- 조건 분기·가변 범위 자동화 → VBA 서브 프로시저
- 셀에서 함수처럼 호출 → 함수 매크로 (UDF)
- 값 변경·파일 열기 등 즉시 반응 → 이벤트 매크로
- 모든 파일에서 공통 사용 → 개인용 매크로 통합 문서(PERSONAL.XLSB)
매크로가 VBA와 어떻게 연결되는지 개념이 아직 명확하지 않다면, 엑셀 매크로 VBA 차이를 먼저 읽어보시길 권합니다. 두 개념의 관계를 정리하면 유형 선택이 훨씬 수월해집니다.
매크로 사용 시 반드시 알아야 할 주의 사항
파일 형식과 보안 경고
엑셀은 기본적으로 매크로를 차단합니다. 매크로가 포함된 파일은 반드시 .xlsm 또는 .xlsb 형식으로 저장해야 하며, 파일을 열 때 ‘콘텐츠 사용’ 버튼을 눌러야 실행됩니다. 인터넷에서 내려받은 파일은 ‘보호된 보기’ 상태로 열리기 때문에 추가 확인 단계가 필요합니다. 출처를 모르는 파일의 매크로는 실행하지 않는 것이 원칙입니다.
이벤트 매크로의 무한 루프 방지
이벤트 매크로 코드 안에서 셀 값을 변경하면 Worksheet_Change가 다시 발동해 무한 루프에 빠질 수 있습니다. 이를 막으려면 코드 시작부에 Application.EnableEvents = False를 넣고, 코드 끝에서 True로 반드시 복원하는 패턴을 지켜야 합니다. 이 패턴을 빠뜨리면 엑셀이 응답 불가 상태가 됩니다.
정리하며
엑셀 매크로는 단일 기능이 아니라 기록 매크로·VBA 서브·함수 매크로·이벤트 매크로로 나뉘는 체계입니다. 각 유형은 생성 난이도, 유연성, 실행 방식이 모두 다르므로, 자동화하려는 작업의 성격을 먼저 파악한 뒤 유형을 고르는 것이 효율적입니다. 처음 시작한다면 기록 매크로로 뼈대를 잡고 자동 생성된 VBA 코드를 조금씩 수정하는 방식이 학습 부담을 줄여줍니다. 매크로를 능숙하게 다루게 되면 엑셀 피벗테이블과 조합해 데이터 분석과 보고서 자동화를 한 단계 더 끌어올릴 수 있습니다.
자주 묻는 질문
엑셀 매크로와 VBA는 같은 건가요?
매크로는 반복 작업을 자동화하는 기능 개념이고, VBA(Visual Basic for Applications)는 그 매크로를 작성하는 프로그래밍 언어입니다. 기록 매크로도 내부적으로 VBA 코드로 변환되어 저장됩니다.
기록 매크로와 VBA 매크로 중 어느 것이 더 좋나요?
목적에 따라 다릅니다. 정해진 순서의 단순 반복이라면 기록 매크로로 충분합니다. 데이터 행 수가 매번 바뀌거나 조건 분기가 필요하다면 VBA 코드를 직접 작성하는 쪽이 훨씬 유연합니다.
이벤트 매크로는 어떻게 만드나요?
VBA 편집기(Alt+F11)에서 해당 시트 또는 ThisWorkbook 모듈을 열어, Worksheet_Change나 Workbook_Open 같은 이벤트 프로시저를 직접 작성합니다. 드롭다운 목록에서 이벤트 이름을 선택하면 기본 틀이 자동 생성됩니다.
매크로 파일은 어떤 형식으로 저장해야 하나요?
매크로가 포함된 파일은 반드시 .xlsm(매크로 포함 통합 문서) 또는 .xlsb(이진 통합 문서) 형식으로 저장해야 합니다. 일반 .xlsx로 저장하면 매크로가 삭제됩니다.
개인용 매크로 통합 문서(PERSONAL.XLSB)란 무엇인가요?
엑셀 실행 시 자동으로 숨겨진 형태로 열리는 특수 파일로, 여기 저장된 매크로는 모든 통합 문서에서 공용으로 사용할 수 있습니다. 자주 쓰는 유틸리티 매크로를 보관하는 용도로 적합합니다.