엑셀 VBA 코딩 몰라도 OK! 챗GPT로 업무 자동화 매크로 만드는 4단계 가이드
매일 아침 출근하자마자 수십 개의 엑셀 파일에서 데이터를 하나하나 복사하고 붙여넣는 단순 반복 업무에 시달리고 계신가요? 엑셀의 VBA(Visual Basic for Applications) 기능을 활용하면 이러한 잡무를 클릭 한 번으로 자동화할 수 있지만, 프로그래밍 언어를 배울 엄두가 나지 않아 포기했던 분들이 많을 것입니다.
하지만 이제는 코딩 문법을 단 한 줄도 외울 필요가 없습니다. 생성형 AI인 챗GPT(ChatGPT)를 활용하면, 구체적인 요구사항을 자연어로 입력하는 것만으로 완성도 높은 VBA 매크로 코드를 몇 초 만에 생성할 수 있습니다. 본 가이드에서는 프로그래밍 비전공자도 따라 할 수 있는 챗GPT 기반 엑셀 업무 자동화 4단계 프로세스와 실패 없는 프롬프트 작성 법, 그리고 실전 예시 코드까지 상세히 공유합니다.
1. 챗GPT로 엑셀 매크로 만들 때의 핵심 원리
챗GPT는 전 세계 개발자들이 작성한 수백만 개의 VBA 코드를 학습한 인공지능입니다. 따라서 우리가 원하는 작업의 조건을 명확히 정의해 주기만 하면, 코딩 명령어 작성부터 오류 수정까지 전 과정을 대신 수행합니다.
VBA 코딩 자동화의 3대 장점
- 압도적인 시간 절약: 몇 시간씩 걸리던 복사·붙여넣기 작업을 0.1초 만에 실행합니다.
- 휴먼 에러 완전 차단: 사람의 실수로 발생하는 데이터 누락이나 오탈자를 방지합니다.
- 비전공자 접근성: 전문 코딩 지식 없이도 '쉬운 한국어 문장'만으로 구현이 가능합니다.
2. 실패 없는 챗GPT 프롬프트 작성 3가지 규칙
챗GPT에게 무작정 "엑셀 매크로 만들어줘"라고 요청하면 모호하거나 동작하지 않는 코드를 출력할 확률이 높습니다. 정확한 매크로를 얻기 위해서는 다음 3가지 핵심 요소(Role, Task, Condition)를 포함해야 합니다.
- 역할 지정 (Role): "너는 10년 차 엑셀 VBA 전문 개발자야."
- 작업 정의 (Task): "A 시트의 데이터를 B 시트로 특정 조건에 맞춰 자동 정리하는 매크로를 짜줘."
- 구체적 조건 (Condition): "시작 셀은 A2이며, 빈칸이 나오면 정지하고, 결과는 메시지 박스로 알려줘."
"너는 엑셀 VBA 전문가야. '원본데이터' 시트의 A열부터 E열까지 데이터 중, E열의 상태 값이 '완료'인 행만 추출하여 '결과' 시트에 복사하는 VBA 매크로 코드를 작성해 줘. 데이터는 2행부터 시작하며, 주석을 달아서 각 코드가 무슨 역할을 하는지 한글로 설명해 줘."
실제로 챗GPT가 생성해 준 VBA 코드 예시
위 프롬프트를 입력했을 때 챗GPT가 출력하는 완벽한 VBA 코드입니다. 그대로 복사하여 사용할 수 있습니다.
Sub ExtractCompletedData()
Dim wsSource As Worksheet
Dim wsTarget As Worksheet
Dim lastRow As Long
Dim i As Long
Dim targetRow As Long
' 시트 지정
Set wsSource = ThisWorkbook.Sheets("원본데이터")
Set wsTarget = ThisWorkbook.Sheets("결과")
' 기존 결과 시트 데이터 초기화 (2행부터)
wsTarget.Rows("2:" & wsTarget.Rows.Count).ClearContents
' 원본 데이터의 마지막 행 번호 구하기
lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
targetRow = 2
' 데이터 순회 및 조건 검사
For i = 2 To lastRow
If wsSource.Cells(i, 5).Value = "완료" Then ' E열이 '완료'인 경우
' A열부터 E열까지 복사
wsSource.Range(wsSource.Cells(i, 1), wsSource.Cells(i, 5)).Copy _
wsTarget.Range(wsTarget.Cells(targetRow, 1), wsTarget.Cells(targetRow, 5))
targetRow = targetRow + 1
End If
Next i
' 완료 메시지 출력
MsgBox "데이터 추출이 완료되었습니다! 총 " & (targetRow - 2) & "건 추출됨.", vbInformation, "완료"
End Sub
3. 챗GPT가 만들어준 코드를 엑셀에 적용하는 4단계
챗GPT가 출력한 VBA 코드를 엑셀 파일에 적용하는 방법은 생각보다 훨씬 간단합니다.
| 단계 | 작업 내용 | 단축키 및 주요 메뉴 |
|---|---|---|
| 1단계 | 개발 도구 탭 활성화 | [파일] > [옵션] > [리본 사용자 지정] > '개발 도구' 체크 |
| 2단계 | VBA 편집기 실행 | Alt + F11 |
| 3단계 | 모듈 생성 및 코드 붙여넣기 | [삽입] > [모듈] 클릭 후 코드 붙여넣기 (Ctrl + V) |
| 4단계 | 매크로 포함 형식으로 저장 | 파일 형식: Excel 매크로 사용 통합 문서(*.xlsm) |
.xlsx 형식으로 저장하면 작성한 매크로 코드가 모두 삭제됩니다. 반드시 .xlsm 확장자로 저장하세요!
4. 자주 발생하는 오류 및 필자의 실전 대처 노하우
VBA 실행 중 에러 메시지가 나타나더라도 당황할 필요가 없습니다. 발생한 오류 내용을 다시 챗GPT에게 학습시키면 즉시 수정된 코드를 받아볼 수 있습니다.
① 런타임 오류 1004 발생 시
원인: 코드에 적힌 시트 이름과 실제 엑셀 시트 이름이 다르거나(예: 공백 포함), 셀 범위 지정이 잘못된 경우 발생합니다.
해결법: 챗GPT에게 "런타임 오류 1004가 발생했어. 시트 이름이 '원본 데이터 '처럼 공백이 있을 수 있는데 이를 자동으로 처리하도록 코드를 수정해 줘"라고 재요청합니다.
② 무한 루프 발생으로 엑셀이 멈추는 현상
원인: Do While 이나 For 문에서 탈출 조건이 명확하지 않을 때 발생합니다.
해결법: 챗GPT에 "무한 루프 방지 코드를 추가해 주고, 진행 상황을 엑셀 하단 상태 표시줄(StatusBar)에 출력하도록 수정해 줘"라고 요청하세요.
5. 업무 자동화를 넓히는 연관 가이드 및 에디터 팁
VBA 매크로를 만들기 전 챗GPT의 기본 프롬프트를 더욱 정교하게 구성하고 싶다면 칼퇴를 부르는 챗GPT 실무 프롬프트 치트키 가이드를 참고하시면 더욱 큰 도움을 받으실 수 있습니다.
또한, 엑셀 데이터뿐만 아니라 전체 프로젝트와 업무 이력을 한곳에서 체계적으로 자동 요약하고 싶다면 노션 데이터베이스와 AI로 업무 히스토리 정리하는 법 포스팅을 함께 읽어보시길 권장합니다.
❓ 자주 묻는 질문 (FAQ)
Q1. 챗GPT 무료 버전(GPT-3.5/GPT-4o mini)으로도 VBA 코드를 작성할 수 있나요?
A1. 네, 충분히 가능합니다. 단순 반복 데이터 입력, 조건부 복사, 시트 통합 등 일상적인 업무 자동화용 VBA 코드는 무료 버전 챗GPT로도 충분히 완벽한 코드를 얻을 수 있습니다.Q2. 매크로 코드가 담긴 엑셀 파일을 다른 사람에게 전달해도 정상 작동하나요?
A2. 네, 작동합니다. 다만 파일을 받는 상대방도 저장 형식이 .xlsm이어야 하며, 엑셀 열기 시 상단에 뜨는 [콘텐츠 사용] 또는 [매크로 포함] 버튼을 승인해야 정상적으로 구동됩니다.Q3. 코드를 실행했는데 엑셀이 먹통이 되거나 다운되었습니다. 원인이 무엇인가요?
A3. 조건문 없이 무한 루프(Loop)가 발생했거나 너무 방대한 데이터량을 한 번에 처리하려 할 때 발생할 수 있습니다. 챗GPT에게 *"무한 루프 방지 코드를 추가해 주고, 진행 상황을 상태 표시줄(StatusBar)에 출력해 줘"*라고 요청하면 안정성이 높아집니다.

댓글