매크로를 만들겠다며 VBA 책부터 펼쳤다면, 이미 순서가 잘못됐다. 엑셀 매크로 만들기는 코딩 없이 ‘매크로 기록’ 기능만으로 시작할 수 있고, 첫 자동화 루틴은 30분 안에 완성된다. 문제는 난이도가 아니라 어디서 시작해야 하는지 모른다는 것이다. VBA 학습이 진입 장벽처럼 느껴지는 건 순서를 거꾸로 잡았기 때문이다. 이 글은 프로그래밍을 모르는 사람이 첫날 반복 작업을 없앨 수 있도록, 막히는 지점을 순서대로 짚는다.
매크로 기록 기능이 먼저다 — VBA는 그다음 문제
엑셀 매크로 진입 경로는 두 가지다. VBA 코드를 직접 작성하거나, ‘매크로 기록’으로 동작을 녹화하거나. 입문자 대부분이 “제대로 배워야 한다”는 이유로 VBA부터 시도한다. 이것이 포기로 이어지는 주된 경로다.
매크로 기록은 사용자가 셀을 클릭하고, 서식을 바꾸고, 수식을 입력하는 모든 동작을 실시간으로 VBA 코드로 변환한다. 코드를 쓰지 않아도 코드가 생긴다는 뜻이다. 매주 같은 형식으로 보고서를 정리하거나, 특정 열을 삭제·정렬하는 루틴처럼 절차가 고정된 반복 작업이라면 기록 기능으로 충분히 해결된다.
VBA 직접 작성이 필요한 시점은 조건(if), 반복(for), 변수 처리가 필요할 때다. 그전까지 VBA는 몰라도 된다.
기록 방식 vs 직접 작성 — 어떤 상황에 어느 쪽을?
| 구분 | 매크로 기록 | VBA 직접 작성 |
|---|---|---|
| 코딩 필요 여부 | 불필요 | 필요 (기본 문법 이상) |
| 적합한 작업 | 절차 고정 반복 작업 | 조건·반복·변수 포함 작업 |
| 범위 유연성 | 낮음 (절대 참조 기본) | 높음 (동적 범위 자유롭게) |
| 첫 완성 시간 | 수십 분 이내 | 학습 시간 별도 필요 |
| 수정 편의성 | 다시 기록하거나 코드 일부 편집 | 편집기에서 직접 수정 |
개발 도구 탭 활성화 — 가장 먼저 막히는 지점
매크로 기록 버튼은 기본 리본에 없다. ‘개발 도구’ 탭을 따로 켜야 한다. 이 탭이 보이지 않아서 매크로 자체를 못 찾는 경우가 실무에서 의외로 많다.
- 파일 탭 → 옵션 → 리본 사용자 지정
- 오른쪽 목록에서 ‘개발 도구’ 체크
- 확인 클릭 → 상단 리본에 탭이 즉시 추가됨
개발 도구 탭이 생기면 ‘매크로 기록’, ‘Visual Basic’, ‘매크로 보기’가 모두 여기 모인다. 이후 모든 작업의 출발점이 된다.
첫 매크로 기록: 네 단계로 완성한다
예시 작업: A열 빈 행 삭제 → B열 오름차순 정렬 → 저장. 절차가 고정된 전형적인 반복 루틴이다.
1단계 — 기록 시작
개발 도구 탭 → ‘매크로 기록’ 클릭. 대화상자에서 매크로 이름(공백 없이, 예: 정렬및정리), 바로 가기 키(선택), 저장 위치를 설정한다. 저장 위치는 일단 ‘현재 통합 문서’로 둔다. 확인을 누르는 순간부터 모든 동작이 녹화된다.
2단계 — 실제 작업 수행
기록이 시작되면 평소처럼 작업한다. A열 선택 → Ctrl+G(이동 옵션) → 빈 셀 선택 → 삭제. 이어서 B열 선택 → 데이터 탭 → 오름차순 정렬. Ctrl+S로 저장. 이 모든 동작이 동시에 VBA 코드로 변환되고 있다.
3단계 — 기록 중지
개발 도구 탭 → ‘기록 중지’ 클릭. 화면 하단 상태 표시줄에 정지 아이콘이 있으면 거기서 눌러도 된다. 이 시점 이후의 동작은 저장되지 않는다.
4단계 — 실행 확인
개발 도구 탭 → ‘매크로’ → 방금 만든 이름 선택 → 실행. 동일한 작업이 자동으로 재현된다. 바로 가기 키를 설정했다면 Ctrl+해당 키 하나로 즉시 실행된다.
기록된 코드에서 꼭 손봐야 할 두 곳
매크로 기록의 핵심 한계는 ‘절대 참조’다. 기록할 때 A1부터 A100을 선택했다면, 코드는 데이터가 몇 행이든 항상 A100까지만 처리한다. 데이터 범위가 매번 달라진다면 이 부분을 고쳐야 한다.
Alt+F11로 VBA 편집기를 열면 기록된 코드 전체가 보인다. 수정이 필요한 부분은 두 곳이다.
- 고정 범위 → 동적 범위 교체:
Range("A1:A100")처럼 하드코딩된 범위를Range("A1", Cells(Rows.Count, 1).End(xlUp))처럼 마지막 행을 자동 감지하는 방식으로 바꾼다. 이 코드 한 줄은 검색으로 즉시 찾을 수 있다. - 불필요한 Select·Activate 제거: 기록 시 셀을 클릭할 때마다
.Select·.Activate줄이 생긴다. 대부분 지워도 매크로는 정상 작동하고, 실행 속도도 눈에 띄게 빨라진다.
VBA 문법을 몰라도 이 두 수정은 예시를 찾아 붙여 넣는 수준으로 처리된다. 처음엔 그래도 충분하다.
자주 막히는 세 가지 상황과 해법
보안 경고가 뜨며 매크로가 실행되지 않는다
엑셀은 기본적으로 외부 매크로를 차단한다. 파일 탭 → 옵션 → 보안 센터 → 보안 센터 설정 → 매크로 설정에서 ‘알림을 표시하고 VBA 매크로 사용’ 또는 ‘모든 매크로 포함’으로 변경한다. 회사 PC는 IT 보안 정책으로 이 설정이 잠겨 있을 수 있다. 그 경우 관리자에게 문의해야 한다.
저장 후 다시 열었더니 매크로가 사라졌다
가장 흔한 실수다. .xlsx 형식은 매크로 코드를 담지 못한다. 파일을 처음 저장할 때 형식을 반드시 Excel 매크로 사용 통합 문서(.xlsm)으로 지정해야 한다. 한 번만 제대로 설정하면 이후 Ctrl+S로 저장해도 형식이 유지된다.
매크로 실행 후 Ctrl+Z가 먹히지 않는다
매크로 실행은 실행 취소 대상이 아니다. 이는 엑셀의 구조적 특성으로, 설정으로 바꿀 수 없다. 중요한 파일에 처음 매크로를 돌리기 전에는 사본을 만드는 것을 습관으로 굳혀야 한다.
모든 파일에서 쓰는 매크로로 만들기
기록 시 저장 위치를 ‘개인용 매크로 통합 문서’로 선택하면 PERSONAL.XLSB라는 숨겨진 파일에 코드가 저장된다. 이 파일은 엑셀을 실행할 때마다 자동으로 백그라운드에 로드되므로, 어느 파일을 열어도 해당 매크로를 사용할 수 있다.
팀 단위 배포가 목표라면 다른 접근이 낫다. 매크로가 담긴 .xlsm 파일을 공유 폴더에 두고, 별도의 ‘실행 버튼’ 시트를 만들어 팀원에게 공유하는 방식이 관리하기 쉽다. 개인용 PERSONAL.XLSB는 다른 사람의 PC에 옮기려면 파일을 직접 복사해야 해서 번거롭다.
정리 — 시작은 기록, 심화는 편집
엑셀 매크로 만들기의 올바른 시작점은 VBA 학습이 아니라 ‘매크로 기록’ 기능이다. 개발 도구 탭 활성화 → 기록 시작 → 작업 수행 → 기록 중지 → 실행 확인의 다섯 단계로 첫 자동화를 완성하고, 범위나 반복 처리가 필요한 부분만 이후에 편집한다.
저장 형식(.xlsm), 보안 설정, 실행 취소 불가 — 이 세 가지를 처음부터 알면 흔히 겪는 막힘 대부분을 피할 수 있다. 한 번 만든 매크로는 수천 번 재사용된다. 처음 30분의 투자가 이후 수십 시간의 반복 작업을 없앤다.
자주 묻는 질문
엑셀 매크로를 만들려면 VBA 코딩을 먼저 배워야 하나요?
아닙니다. 엑셀의 '매크로 기록' 기능을 쓰면 마우스·키보드 동작이 자동으로 VBA 코드로 변환됩니다. 단순 반복 작업은 코딩 없이도 자동화할 수 있으며, 조건·반복·변수 처리가 필요할 때만 VBA를 점진적으로 배우면 됩니다.
개발 도구 탭이 보이지 않으면 어떻게 하나요?
파일 → 옵션 → 리본 사용자 지정으로 이동해 오른쪽 목록에서 '개발 도구'에 체크하면 됩니다. 확인 클릭 즉시 탭이 추가되며, 이후 매크로 기록과 VBA 편집기에 모두 접근할 수 있습니다.
매크로 파일을 저장할 때 .xlsx로 저장하면 안 되나요?
.xlsx 형식은 매크로 코드를 저장하지 못합니다. 매크로가 포함된 파일은 반드시 '다른 이름으로 저장' 시 형식을 Excel 매크로 사용 통합 문서(.xlsm)로 바꿔야 합니다. .xlsx로 저장하면 매크로가 삭제됩니다.
매크로 실행 후 실수한 작업을 Ctrl+Z로 되돌릴 수 있나요?
아닙니다. 매크로 실행은 실행 취소(Ctrl+Z)가 되지 않습니다. 중요한 파일에 처음 매크로를 적용하기 전에는 반드시 사본을 먼저 만드는 습관이 필요합니다.
만든 매크로를 다른 엑셀 파일에서도 사용할 수 있나요?
기록 시 저장 위치를 '개인용 매크로 통합 문서'로 선택하면 PERSONAL.XLSB에 저장되어 엑셀을 열 때마다 자동 로드됩니다. 특정 파일에만 저장한 경우에는 해당 .xlsm 파일이 열려 있어야 매크로를 사용할 수 있습니다.