
안녕하세요.
매일 아침 똑같은 양식으로 수십 개의 엑셀 파일을 정리하거나, 특정 데이터만 골라 시트를 옮기는 반복 작업. 일명 ‘엑셀 노가다’라고 부르는 이 작업들은 우리를 지치게 만듭니다. 이럴 때 생각나는 것이 바로 ‘매크로(VBA)’지만, 시커먼 코드 창을 마주하면 “역시 이건 개발자나 하는 거지”라며 포기하게 됩니다.
하지만 이제 챗GPT와 함께라면 이야기가 달라집니다. 여러분은 코딩 문법을 단 한 줄도 몰라도 됩니다. 내가 원하는 기능을 한국어로 설명만 하면 AI가 완벽한 VBA 코드를 작성해 주고, 우리는 그저 ‘복사해서 붙여넣기’만 하면 되기 때문입니다. 오늘은 AI를 활용해 엑셀 업무를 100% 무인화하는 VBA 매크로 활용법을 전격 공개합니다.
1. VBA 매크로, 왜 AI와 함께해야 할까?
- 진입 장벽 파괴:
Sub,Dim,Loop같은 용어를 공부할 필요가 없습니다. - 복잡한 로직 해결: 수동으로 하면 1시간 걸릴 작업을 1초 만에 끝내는 로직을 즉석에서 얻을 수 있습니다.
- 디버깅 자동화: 코드가 작동하지 않을 때 에러 메시지만 던져주면 AI가 즉시 수정된 코드를 줍니다.
- 맞춤형 기능 구현: 엑셀 기본 기능으로는 불가능한 나만의 특수 기능을 무한정 만들 수 있습니다.
2. VBA 매크로 적용을 위한 3분 준비 과정
매크로를 사용하려면 엑셀에서 딱 한 번의 설정이 필요합니다.
- 개발 도구 탭 활성화: [파일] – [옵션] – [리본 사용자 지정]에서 ‘개발 도구’를 체크합니다.
- 매크로 보안 설정: [개발 도구] – [매크로 보안]에서 ‘모든 매크로 제외(알림 포함)’로 설정합니다.
- 파일 저장 형식: 반드시 ‘엑셀 매크로 사용 통합 문서(.xlsm)’ 형식으로 저장해야 매크로가 유지됩니다.
3. 실전 사례 1: 수십 개의 시트 하나로 합치기
여러 부서에서 보낸 수십 개의 시트 데이터를 한 장의 시트로 합쳐야 할 때 유용한 매크로입니다.
[VBA 코드 예제 1] 모든 시트 데이터 통합 매크로
상황: 파일 안에 시트가 여러 개 있고, 각 시트의 데이터를 ‘통합’ 시트로 모으고 싶음.
AI가 작성해 준 프롬프트 결과 (VBA):
Sub CombineSheets()
Dim ws As Worksheet
Dim mainWs As Worksheet
Dim lastRow As Long
Dim copyRow As Long
Set mainWs = ThisWorkbook.Sheets("통합") '데이터를 모을 시트 이름
copyRow = 1
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "통합" Then
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
ws.Range("A1:Z" & lastRow).Copy mainWs.Range("A" & copyRow)
copyRow = mainWs.Cells(mainWs.Rows.Count, "A").End(xlUp).Row + 1
End If
Next ws
MsgBox "모든 데이터 통합이 완료되었습니다!"
End Sub
4. 실전 사례 2: 조건에 맞는 행만 별도 파일로 저장하기
특정 지역이나 특정 담당자의 데이터만 골라내어 각각 별도의 파일로 만들어야 할 때 사용하는 고난도 작업입니다.
[VBA 코드 예제 2] 조건별 자동 파일 분할 저장
상황: A열에 ‘지역’이 적혀 있고, 각 지역별로 별도의 엑셀 파일을 만들어 저장하고 싶음.
AI가 작성해 준 코드 (VBA):
Sub SplitDataIntoFiles()
Dim ws As Worksheet
Dim uniqueList As Collection
Dim cell As Range
Dim key As Variant
Set ws = ThisWorkbook.Sheets("원본데이터")
Set uniqueList = New Collection
' 중복 없는 지역 목록 만들기
On Error Resume Next
For Each cell In ws.Range("A2:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row)
uniqueList.Add cell.Value, CStr(cell.Value)
Next cell
On Error GoTo 0
' 지역별로 필터링하여 새 파일로 저장
For Each key In uniqueList
ws.UsedRange.AutoFilter Field:=1, Criteria1:=key
Workbooks.Add
ws.UsedRange.SpecialCells(xlCellTypeVisible).Copy ActiveWorkbook.Sheets(1).Range("A1")
ActiveWorkbook.SaveAs ThisWorkbook.Path & "" & key & ".xlsx"
ActiveWorkbook.Close SaveChanges:=False
Next key
ws.AutoFilterMode = False
MsgBox "파일 분할 작업이 완료되었습니다!"
End Sub
5. AI와 함께 VBA 고수가 되는 꿀팁
- 설명 주석 요청: “코드에 한글로 주석을 자세히 달아줘”라고 요청하면 각 줄이 무엇을 하는지 이해할 수 있습니다.
- 단계적 요청: “먼저 데이터를 정렬하는 코드부터 짜줘” -> “그다음 파일로 저장하는 기능을 추가해줘” 식으로 살을 붙여가세요.
- 에러 대응: 매크로 실행 중 에러가 나면
F8키로 한 줄씩 실행하며 에러 위치를 찾고, 해당 코드를 챗GPT에 다시 물어보세요. - 사용자 폼(UserForm) 요청: 더 전문적인 도구를 만들고 싶다면 버튼이나 입력창이 있는 ‘사용자 정의 폼’ 코드를 짜달라고 해보세요.

결론
VBA 매크로는 더 이상 전문가의 전유물이 아닙니다. 코딩 문법이라는 장벽을 AI가 허물어주었기 때문입니다. 이제 여러분은 “어떻게 구현할까”가 아니라 “어떤 것을 자동화할까”만 고민하면 됩니다.
오늘 소개한 코드들을 복사해서 직접 실행해 보세요. 한 시간 걸리던 작업이 클릭 한 번에 끝나는 희열을 느끼는 순간, 여러분의 직장 생활은 완전히 달라질 것입니다.
다음 포스팅에서는 “지저분한 주소와 전화번호 데이터를 AI로 한 번에 규격화해서 정리하는 법”을 다루겠습니다. 데이터 정제 노가다에서도 해방될 준비 되셨나요?




