챕터 5

VBA 매크로 — 코드 한 줄 몰라도 반복작업 자동화

반복되는 엑셀 작업을 AI에게 설명해 VBA 매크로 코드를 만들고, 붙여넣기·실행·오류 수정까지 코딩 없이 진행하는 법을 단계별로 다룹니다.

매크로가 뭐길래

4장까지는 수식과 피벗으로 데이터를 다뤘습니다. 그런데 어떤 일은 수식으로 안 됩니다. "매달 새 시트를 만들고, 제목행을 넣고, 서식을 입히고, 저장하는" 것처럼 여러 동작을 순서대로 반복하는 일이죠.

이런 걸 자동으로 해 주는 게 매크로입니다. 쉽게 말하면 "이 동작들을 이 순서로 해"라고 미리 적어두고 버튼 하나로 재생하는 겁니다. 그 적어두는 언어가 VBA(Visual Basic for Applications), 엑셀에 내장된 자동화용 스크립트입니다.

예전엔 이 VBA가 진입장벽이었습니다. 코드를 배워야 했으니까요. 지금은 그럴 필요가 없습니다. 하고 싶은 반복을 말로 설명하면 ChatGPT가 VBA 코드를 대신 써 줍니다.

언제 매크로가 답인가

기준은 하나입니다. "매번 똑같은 손동작을 반복하고 있다"면 매크로 후보입니다.

예를 들어 매주 월요일마다 이런 일을 한다고 해 보죠. 여러 지점에서 온 판매 파일을 열어서, 필요 없는 열을 지우고, 날짜 형식을 통일하고, 합계 행을 붙이고, 다른 이름으로 저장합니다. 손으로 하면 삼사십 분, 클릭 수십 번입니다.

이걸 매크로로 만들어 두면 버튼 한 번에 끝납니다. 한 번 만들어 두면 다음 주에도, 그다음 주에도 그대로 돕니다. 반대로 한 번 쓰고 말 작업이라면 굳이 매크로로 만들 필요는 없습니다. 그냥 AI에게 수식으로 부탁하는 게 빠릅니다.

말로 시켜서 매크로 만들기

흐름은 네 걸음입니다. 설명하고, 받고, 붙여넣고, 돌립니다.

매달 초에 할 일이야. 새 시트를 하나 만들고 이름을 그 달로("2026-08" 식으로) 붙인 다음, 1행에 '날짜·항목·금액·비고' 제목을 넣는 VBA 매크로를 짜 줘. 코드랑 어디에 붙여넣는지도 알려줘.

AI가 코드와 함께 붙여넣는 위치를 알려줍니다. 엑셀에서 Alt+F11을 누르면 VBA 편집기가 열리는데, 여기서 "삽입 → 모듈"로 빈 모듈을 만들고 그 안에 코드를 붙여넣습니다.

이 "모듈 안에 붙여넣기"가 핵심입니다. 초보가 가장 많이 막히는 지점이 엉뚱한 곳에 코드를 넣는 건데, 그러면 실행이 안 됩니다. 붙여넣은 뒤 F5나 실행 버튼을 누르면 매크로가 돕니다. 잘 되면 끝, 오류가 나면 다음 단계로 갑니다.

실제로 한 번 돌려보면

말로만 들으면 막연하니 짧게 따라가 보겠습니다. 위 요청을 넣으면 AI는 대략 이런 코드를 내놓습니다.

Sub 새달시트()
    Dim ws As Worksheet
    Set ws = Sheets.Add
    ws.Name = Format(Date, "yyyy-mm")
    ws.Range("A1:D1").Value = Array("날짜", "항목", "금액", "비고")
End Sub

코드를 다 이해할 필요는 없습니다. 눈에 익혀 둘 건 딱 하나, ws.Name = ... 줄이 시트 이름을 정하고 Array(...) 부분이 제목행을 넣는다는 정도입니다. 나중에 제목을 바꾸고 싶으면 그 부분만 손보거나, 아예 AI에게 "제목에 '담당자'를 추가해줘"라고 다시 부탁하면 됩니다.

모듈에 붙여넣고 F5를 눌러 새 시트가 제대로 생기면 성공입니다. 반복 작업 하나가 버튼 한 번으로 줄어든 겁니다.

프롬프트는 작업만 바꿔 얼마든지 재활용됩니다.

지금 선택한 범위에서 값이 완전히 빈 행을 찾아 삭제하는 매크로를 짜 줘. 실행 전에 몇 개 행이 지워지는지 먼저 물어보게 만들어 줘.

오류가 나도 괜찮다

처음부터 완벽하게 도는 경우는 드뭅니다. 그런데 이게 오히려 AI 매크로의 장점입니다. 오류 메시지를 그대로 AI에게 돌려주면 되니까요.

방금 준 매크로를 실행하니 이런 오류가 났어: "런타임 오류 '1004': 개체 '_Worksheet'의 메서드 'Name'이(가) 실패했습니다". 원인이 뭐고 어떻게 고치면 되는지, 수정한 전체 코드로 알려줘.

이 오류는 대개 같은 이름의 시트가 이미 있어서 납니다. AI에게 저 메시지를 그대로 붙이면 "이미 있으면 지우고 다시 만들도록" 고친 코드를 내줍니다. 오류 메시지 창을 캡처해 붙여도 됩니다.

이 "실행 → 오류 붙여넣기 → 수정"을 두세 번 돌리면 대개 완성됩니다. 한 가지 선은 그어두세요. 세 번, 네 번을 돌려도 계속 같은 자리에서 맴돈다면, 그건 요청 자체가 애매하거나 작업이 너무 복잡하다는 신호입니다. 그럴 땐 작업을 더 잘게 쪼개 "먼저 이것만 하는 매크로"부터 다시 부탁하는 편이 빠릅니다.

실행 전에 반드시 복사본에서

매크로에는 조심할 점이 하나 있습니다. 매크로가 바꿔 놓은 결과는 Ctrl+Z로 되돌려지지 않습니다. 수식은 잘못돼도 지우면 그만이지만, 매크로는 수백 행을 한 번에 바꿔 놓고 되돌릴 수 없습니다.

그래서 규칙은 단순합니다.

  • 새 매크로는 반드시 원본 파일의 복사본에서 먼저 실행해 결과를 확인한다
  • 처음엔 작은 범위·적은 데이터로 시험한 뒤 전체에 적용한다
  • 출처가 불분명한 남의 매크로는 그대로 돌리지 말고, AI에게 "이 코드가 무슨 일을 하는지" 먼저 물어본다

하나 더, 매크로가 든 파일은 일반 엑셀(.xlsx)로 저장하면 매크로가 통째로 사라집니다. "매크로 사용 통합 문서(.xlsm)"로 저장해야 다음에 다시 열어도 그대로 남습니다. 처음 매크로를 만든 사람이 가장 허무하게 겪는 실수라, 미리 알아두면 좋습니다.

이 습관만 있으면 매크로는 겁낼 대상이 아니라 반복 업무를 통째로 덜어주는 든든한 도구가 됩니다. 삼사십 분짜리 월요일 아침 일이 버튼 하나로 줄어드는 경험을 한 번 하고 나면, 다른 반복작업도 자꾸 매크로로 넘기게 됩니다.

다음 챕터에서는 여러 파일·시트에 흩어진 데이터를 하나로 통합하거나, 반대로 기준에 따라 부서별로 분리하는 대량 처리 작업을 AI로 다루는 법을 살펴보겠습니다.