개발 도구 탭 → 매크로 기록. 이름을 정하고 확인을 누른 다음 늘 하던 순서대로 표를 손보고, 기록 중지를 누르면 그 순서가 통째로 저장됩니다. 코드는 한 줄도 쓰지 않습니다.
다만 기록기는 무엇을 했는지가 아니라 어디를 눌렀는지를 받아 적습니다. 그래서 기록을 시작할 때 커서가 어느 셀에 있었는지에 따라, 다음 달에 같은 매크로가 엉뚱한 자리를 고치기도 합니다.
목차
개발 도구 탭 매크로 기록, 경로는 여기 하나
리본에 개발 도구 탭이 보이면 준비는 끝난 것입니다.
매크로 기록 단추는 개발 도구 탭의 맨 왼쪽 코드 그룹에 있습니다. 이 그룹에는 네 개가 나란히 붙어 있고, 이 글에서 실제로 쓰는 것은 그중 세 개입니다. 매크로 기록을 눌러 시작하면 같은 자리가 기록 중지로 바뀌고, 중지를 누르는 순간 그 사이의 동작이 하나의 매크로로 저장됩니다. 저장된 것은 파일 안에 함께 들어가므로, 그 파일을 열면 매크로도 같이 따라옵니다.
- Visual Basic - 기록된 코드를 열어 보고 고치는 창을 띄웁니다
- 매크로 - 저장된 매크로 목록에서 골라 실행하거나 편집합니다
- 매크로 기록 - 지금부터의 동작을 받아 적기 시작합니다
- 상대 참조로 기록 - 셀 주소를 고정하지 않고 커서 자리를 기준으로 적습니다
보기 탭에도 매크로 단추가 있지만 거기서는 실행과 기록만 되고, 기록된 코드를 여는 길은 없습니다. 상대 참조를 켜고 끄는 단추는 개발 도구 탭에만 있고, 이 단추 하나가 다음 달 결과를 크게 바꿉니다. 탭 자체가 안 보인다면 기능이 없는 것이 아니라 리본에서 꺼져 있는 상태이며, 켜는 방법은 아래 안 될 때에 있습니다.
지금 해보세요 - 확인
리본에서 개발 도구를 눌러 맨 왼쪽 코드 그룹을 봅니다. 매크로 기록과 상대 참조로 기록이 위아래로 나란히 보이면, 이 글의 모든 단계를 그대로 따라올 수 있는 상태입니다.
기록기는 결과가 아니라 동작을 받아 적는다
눌렀다가 취소한 클릭도 한 줄로 남습니다.
기록 중에 셀을 하나 누르면 그 클릭이 그대로 한 줄이 됩니다. 서식을 바꾸지 않고 지나간 셀도 마찬가지입니다. 기록기는 화면에서 일어난 순서를 그대로 옮겨 적을 뿐이라, 사람이 머릿속에서 세운 목적은 어디에도 남지 않습니다. 그래서 같은 결과를 만드는 매크로라도 기록한 사람의 손버릇에 따라 길이가 두 배씩 차이 납니다.
| 기록 중에 한 동작 | 코드에 남나 | 다시 실행하면 |
|---|---|---|
| 열 경계를 끌어 너비를 바꿈 | 남음 | 같은 열이 같은 너비가 됩니다 |
| 머리행을 굵게, 채우기 색 넣기 | 남음 | 같은 행에 같은 서식이 들어갑니다 |
| 셀을 눌러 이동만 함 | 남음 | 그 셀로 커서가 옮겨갑니다 |
| 실행 취소로 방금 것을 되돌림 | 남지 않음 | 되돌리기 전 동작만 남아 실행됩니다 |
| 인쇄 미리 보기를 열었다 닫음 | 남음 | 미리 보기가 매번 다시 열립니다 |
| 다른 통합 문서로 전환 | 파일 이름째로 남음 | 그 파일이 안 열려 있으면 멈춥니다 |
주의 - 매크로를 실행한 뒤에는 되돌리기가 듣지 않습니다
매크로가 한 일은 실행 취소 목록에 쌓이지 않습니다. 실행 직후에 되돌리기를 눌러도 매크로 실행 전으로 돌아가지 못하고, 그 앞에 손으로 하던 작업 기록까지 함께 지워집니다. 처음 만든 매크로는 반드시 원본을 복사해 둔 파일에서 먼저 돌려 봅니다.
지금 해보세요 - 확인
같은 폴더의 sample.xlsx를 열고 파일 → 사본 저장으로 한 벌을 더 만들어 둡니다. 아래 기록 연습은 전부 그 사본에서 합니다.
매달 손보는 표로 한 번 기록해 보기
9월정산 시트 하나로 시작부터 저장까지 갑니다.
sample.xlsx의 9월정산 시트는 머리행이 굵지도 않고, 금액 열에 자릿수 구분도 없고, 열이 좁아 글자가 잘려 보입니다. 매달 받아 오는 자료가 늘 이 모양이라면 손으로 고치는 그 순서가 그대로 매크로가 됩니다. 새로 배울 동작은 없고, 하던 일을 기록기를 켠 채로 한 번 더 하는 것이 전부입니다. 아래 세 단계 중 실제로 손이 가는 것은 두 번째뿐입니다.
1A1을 누른 다음 기록을 시작합니다
개발 도구 → 매크로 기록. 매크로 이름은 서식정리처럼 띄어쓰기 없이 적습니다. 저장 위치는 현재 통합 문서로 두고, 바로 가기 키는 비워 둡니다. 확인을 누르는 순간부터 기록이 시작됩니다.
2늘 하던 순서대로 표를 손봅니다
1행을 골라 굵게와 채우기 색, A열부터 E열까지 골라 열 너비 자동 맞춤, 금액 열에 쉼표 서식. 중간에 다른 시트를 들여다보거나 스크롤을 크게 움직이지 않습니다.
3개발 도구 → 기록 중지를 누릅니다
단추 이름이 다시 매크로 기록으로 돌아오면 저장된 것입니다. 이어서 파일 → 다른 이름으로 저장에서 형식을 Excel 매크로 사용 통합 문서로 바꿔 저장합니다.
지금 해보세요 - 해결
10월정산 시트로 옮겨 A1을 누르고 개발 도구 → 매크로 → 서식정리 → 실행. 조금 전에 손으로 하던 순서가 한 번에 지나갑니다. 결과가 서식정리후 시트와 같으면 제대로 기록된 것입니다.
내 표가 이런 모양일 때
기록기는 표를 보지 않습니다. 눌린 자리만 봅니다.
9월정산에서 기록한 매크로가 10월정산에서도 잘 돌았다면, 두 표의 모양이 마침 같았기 때문입니다. 행 수가 다르거나 시트 이름이 다르거나, 기록을 시작한 셀이 달랐다면 같은 매크로가 다른 결과를 냅니다. 아래 네 가지가 실제 자료에서 가장 자주 어긋나는 자리입니다.
커서 자리에서 돌게 하려면 - 상대 참조로 기록
매크로 기록을 그냥 켜면 눌린 셀 주소가 코드에 그대로 박힙니다. 기록 중에 B2를 눌렀다면 코드에도 B2가 들어가서, 다음에 커서를 어디에 두고 실행하든 늘 B2만 고칩니다. 한 자리만 손보는 매크로라면 이 편이 안전합니다.
기록을 시작하기 전에 상대 참조로 기록을 한 번 눌러 두면, 같은 동작이 커서 자리에서 몇 칸 떨어졌는지로 적힙니다. 이때는 실행 직전에 커서를 어디에 두느냐가 결과를 정합니다. 줄마다 새 항목을 끼워 넣는 일처럼 자리가 매번 바뀌는 작업은 이쪽이라야 돌아갑니다.
이 단추는 한 번 누르면 눌린 상태로 남습니다. 다음에 기록을 켤 때도 그대로 이어지므로, 다시 고정 주소로 기록하고 싶으면 한 번 더 눌러 꺼 둡니다. 켜져 있는지 꺼져 있는지는 단추 배경이 진하게 눌려 있는 모양으로 구분합니다.
행 수가 매달 달라지는 표
9월은 12행이고 10월은 17행이면, 기록될 때 박힌 범위가 아래 다섯 줄을 빼먹습니다. 반대로 행이 줄어든 달에는 빈 행까지 서식이 칠해집니다. 기록된 코드에서 범위가 적힌 줄 하나만 바꾸면 표 크기를 따라가게 됩니다.
Range("A1").CurrentRegion.Select ' 표 크기를 따라감
지금 해보세요 - 해결
개발 도구 → 매크로 → 서식정리 → 편집. 오른쪽 창에서 A2:E13이 적힌 줄을 찾아 위 두 번째 줄로 바꾸고 저장합니다. 표 안에 완전히 빈 행이 없으면 머리행부터 마지막 행까지 알아서 잡힙니다.
시트 이름이 매달 바뀌는 파일
기록 중에 시트 탭을 한 번이라도 눌렀다면 그 이름이 코드에 박힙니다. 다음 달 파일에 9월정산이라는 시트가 없으면 매크로는 첫 줄에서 멈추고, 아래첨자 사용이 잘못되었다는 메시지가 뜹니다. 표는 그대로인데 이름만 바뀌어도 이렇게 걸립니다.
주의 - 시트를 고르는 줄을 지우기 전에
그 줄을 지우면 매크로는 지금 열려 있는 시트에서 돕니다. 실행할 시트를 먼저 눌러 두지 않으면 엉뚱한 시트가 정리되고, 앞에서 적었듯 되돌리기로는 복구되지 않습니다. 시트 이름을 매달 같은 이름으로 통일할 수 있다면 그 편이 손이 덜 갑니다.
기록 중에 무심코 누른 클릭
기록을 켠 채로 다른 시트를 잠깐 보거나, 화면을 크게 스크롤하거나, 필터를 눌렀다 풀면 그 동작이 전부 줄로 남습니다. 실행할 때마다 화면이 그만큼 왔다 갔다 하고, 나중에 지운 시트를 가리키는 줄이 섞여 있으면 거기서 멈춥니다.
기록된 코드는 개발 도구 → 매크로 → 편집으로 열립니다. Select와 Activate만 있는 줄은 대부분 화면을 옮기기만 하는 줄이라, 지워도 결과가 같은 경우가 많습니다. 지우기 전에 파일을 한 벌 복사해 두고, 한 줄씩 지운 뒤 실행해 결과를 확인합니다.
안 될 때 - 탭, 저장, 노란 막대
여기 셋에서 거의 다 걸립니다.
개발 도구 탭이 리본에 없다
기본 설정에서는 이 탭이 꺼져 있습니다. 설치가 잘못된 것도, 버전이 낮아서도 아닙니다. 파일 → 옵션 → 리본 사용자 지정을 열면 오른쪽에 기본 탭 목록이 있고, 그 안 개발 도구 앞의 네모에 체크한 뒤 확인을 누르면 리본 오른쪽 끝에 나타납니다.
지금 해보세요 - 해결
파일 → 옵션 → 리본 사용자 지정 → 오른쪽 목록의 개발 도구 체크 → 확인. 엑셀을 다시 시작하지 않아도 바로 보이고, 한 번 켜 두면 다음에 여는 파일에도 그대로 남습니다.
저장하고 다시 열었더니 매크로가 없다
xlsx 형식에는 매크로가 들어가지 않습니다. 그대로 저장하려 하면 매크로 없는 통합 문서로 저장하겠느냐고 한 번 묻는데, 여기서 예를 누르면 표와 서식은 그대로 두고 코드만 조용히 빠집니다. 파일은 멀쩡히 열리기 때문에 다음 달에 실행하려 할 때야 사라진 것을 압니다.
지금 해보세요 - 해결
파일 → 다른 이름으로 저장 → 파일 형식을 Excel 매크로 사용 통합 문서로 바꿔 저장합니다. 저장 뒤 제목 표시줄의 파일 이름이 xlsm으로 끝나는지 확인합니다.
노란 막대 때문에 실행이 막힌다
매크로가 든 파일을 다시 열면 수식 입력줄 위에 보안 경고 막대가 뜹니다. 콘텐츠 사용을 누르기 전까지는 매크로 목록이 비어 보이거나, 실행해도 아무 일이 일어나지 않습니다. 막대를 닫아 버렸다면 다시 부를 방법이 없으니 파일을 닫았다가 새로 엽니다.
주의 - 남이 보낸 파일의 콘텐츠 사용
메일이나 인터넷으로 받은 xlsm은 안에 어떤 코드가 들었는지 열어 보기 전에는 알 수 없습니다. 콘텐츠 사용은 직접 만들었거나 출처가 분명한 파일에만 누릅니다. 확인이 필요하면 먼저 개발 도구 → Visual Basic으로 코드를 열어 봅니다.
자주 묻는 질문
본문에서 다루지 않은 것만 모았습니다.
Q.파일을 열 때마다 콘텐츠 사용을 눌러야 하나요
A.기본값으로는 열 때마다 눌러야 합니다. 파일 → 옵션 → 보안 센터 → 보안 센터 설정 → 신뢰할 수 있는 위치에 그 파일이 든 폴더를 등록해 두면, 그 폴더에서 연 파일은 막대 없이 바로 실행됩니다. 등록은 파일이 아니라 폴더 단위라, 내 작업 폴더 하나만 넣어 두는 편이 안전합니다.
Q.바로 가기 키를 지정해도 되나요
A.됩니다. 다만 저장이나 복사처럼 이미 쓰는 조합을 넣으면 그 파일이 열려 있는 동안 원래 기능이 매크로에 밀립니다. 대화상자의 입력란에서 Shift를 함께 누른 채 글자를 입력하면 Ctrl과 Shift를 같이 쓰는 조합으로 잡혀 겹칠 일이 적습니다.
Q.다른 파일에서도 같은 매크로를 쓰려면
A.매크로 기록 대화상자의 저장 위치를 개인용 매크로 통합 문서로 바꿔 기록합니다. 엑셀이 켜질 때 함께 열리는 숨은 파일에 저장돼서 어떤 통합 문서에서도 목록에 나옵니다. 대신 그 파일은 이 컴퓨터에만 있으므로, 다른 사람에게 넘길 매크로는 통합 문서 안에 넣어 xlsm으로 보냅니다.
Q.열 순서가 매달 뒤바뀌어 오는 자료도 기록으로 되나요
A.기록은 눌린 순서를 그대로 재생하는 것이라, 열 위치나 열 이름이 매번 달라지는 자료에는 맞지 않습니다. 그런 자료는 데이터 탭의 파워 쿼리로 정리 단계를 한 번 만들어 두고 새로 고침만 누르는 쪽이 덜 깨집니다.
정리 - 위에서부터 체크하세요
기록 전에 넷, 기록 뒤에 여섯을 봅니다.
매크로는 한 번 만들어 두면 다음 달부터 실행만 남습니다. 처음 한 번이 어긋나는 자리는 늘 같아서, 아래 순서대로 확인하면 대부분 첫 시도에 끝납니다. 특히 커서 자리와 파일 형식 두 가지는 나중에 고치려면 기록을 다시 해야 하는 항목입니다.
지금 해보세요 - 확인
개발 도구 → 매크로를 눌러 만든 이름이 목록에 있는지 봅니다. 이름이 안 보이면 그 파일이 xlsm인지, 보안 경고 막대에서 콘텐츠 사용을 눌렀는지 두 가지를 먼저 확인합니다.
매달 같은 파일을 열어 같은 순서로 손보고 있다면, 그 순서를 한 번 받아 적어 두는 것만으로 다음 달의 십 분이 사라집니다. 표 모양이 조금씩 달라지는 자료라도 범위와 시트 이름 두 줄만 고치면 그대로 이어 쓸 수 있습니다.
정리 - 위에서부터 체크하세요
□ 리본에 개발 도구 탭이 보인다
□ 연습은 사본에서 한다 (매크로 실행 뒤에는 되돌리기가 듣지 않는다)
□ 기록을 시작할 때 커서를 어느 셀에 둘지 정했다
□ 커서 자리 기준으로 돌려야 하면 상대 참조로 기록을 먼저 눌렀다
□ 기록 중에 다른 시트나 다른 통합 문서를 열지 않았다
□ 손보는 순서를 끝까지 마치고 기록 중지를 눌렀다
□ 파일을 Excel 매크로 사용 통합 문서로 저장했다
□ 다시 열었을 때 보안 경고 막대에서 콘텐츠 사용을 눌렀다
□ 행 수가 매달 다르면 범위가 적힌 줄을 CurrentRegion으로 고쳤다
□ 시트 이름이 매달 다르면 시트를 고르는 줄을 지웠다
#엑셀매크로 #매크로기록 #xlsm #개발도구 #엑셀자동화







