AI 엑셀 작업, Copilot 창이랑 VBA 중에 뭘로 시작해야 할까요?
매일 같은 엑셀 작업을 손으로 반복하다 보면 한 번쯤 드는 고민이죠. 저도 회사에서 쓰는 엑셀을 매일 수작업으로 돌리다가, AI로 VBA를 만들어 쓰는 방법을 처음 알게 됐어요. VBA는 엑셀 안에서 작업을 자동으로 시키는 프로그래밍 언어(매크로)예요. 코드는 한 줄도 몰랐지만, 처음 해 보는 방식이라 신나고 흥미로웠습니다.
COPILOT 함수는 2026. 9. 14.에 종료됐어요. 그래서 지금 고를 수 있는 길을 2026. 10. 20. 기준으로 비교해 봤습니다.
✍️ 코딩 모르는 AI 초보 · 직접 해보고 기록해요 · 2026. 10. 20. 작성 (바뀔 수 있는 정보는 작성일 기준)
📌 핵심 요약
- 엑셀 AI는 Copilot 창, COPILOT 함수, 채팅 AI + VBA 세 방식이에요. 함수는 2026. 9. 14.에 종료됐습니다.
- Copilot 창은 직접 써 보지 않아 공식 문서 기준으로만 적었고, VBA는 제가 해 본 경험 기준입니다.
- VBA에서 막힌 곳은 빈 칸 오류, 늘어나는 규칙, 주소 어긋남, 보이는 값과 실제 값의 차이였어요. AI가 코드를 줘도 붙여넣고 실행하는 건 사람 몫입니다.
세 방식은 뭐가 다를까요
Microsoft 지원 페이지(2026. 10. 20. 기준)에 따르면 COPILOT 함수는 2026년 9월 14일부터 Excel에서 사용할 수 없습니다. 이 함수는 미리 보기 기능이어서 Frontier 프로그램과 Microsoft 365 참가자(Insider) 프로그램에서만 쓸 수 있었어요. 출처: [Microsoft 지원 - COPILOT 함수](https://support.microsoft.com/en-us/excel/functions/copilot-function). 이 함수를 쓰던 파일을 다시 계산하면 어떻게 되는지는 공식 페이지에서 확인하지 못했어요. 이미 계산된 값이 남는지, 오류가 뜨는지는 파일을 열어 보고 판단해야 합니다.
같은 페이지는 Copilot 창에서 텍스트 요약, 데이터 분류, 내용 생성, 웹 정보 찾기 같은 비슷한 AI 작업을 계속 할 수 있다고 안내해요. 공식 도움말 기준으로 시트 편집, 수식 생성, 차트·피벗 테이블 만들기 같은 작업도 맡길 수 있어요. 다만 Copilot 창이 매크로(VBA)를 지원한다는 안내는 제가 공식 도움말에서 확인하지 못했습니다. 외부 글을 보면 Copilot에게 VBA 매크로 코드를 요청할 수는 있지만, 생성된 코드를 엑셀에 넣고 실행하는 건 사람이 직접 해야 한다고 해요. 한 줄로 정리하면 "코드는 써 주지만 실행은 못 해 준다"입니다.
| 기준 | Copilot 창 | COPILOT 함수 | 채팅 AI + VBA |
|---|---|---|---|
| 하는 일 | 수식·차트·정렬·서식 등 시트 작업 | 셀 안에서 요약·분류 | 반복 작업을 매크로로 자동화 |
| 상태(2026. 10. 20.) | 사용 가능(구독·조직 설정에 따라) | 종료 | 사용 가능 |
| 준비물 | Copilot 포함 구독 | 없음 | 엑셀 데스크톱 앱 |
| 직접 할 일 | 요청 입력, 결과 확인 | 해당 없음 | 코드 붙여넣기, 실행, 오류 수정 |
| 초보 난이도(직접 해 본 것만 표기) | 미확인 | 미확인(종료) | 중간 이상(제 경험) |
Copilot은 구독에 포함되지 않았거나 조직 설정에 따라 보이지 않을 수 있어요. 요금과 구독별 사용 범위는 자주 바뀌니 [Microsoft 365 공식 페이지](https://www.microsoft.com/ko-kr/microsoft-365)에서 구매 전에 직접 확인하세요.
저는 VBA로 시작했고, 벽을 네 번 만났어요
VBA는 Copilot이 코드를 써 줘도 한계가 있어요. GitHub 프로필에 Excel과 AI를 가르치는 Microsoft MVP라고 소개된 Stringfest Analytics의 글 [Copilot for Excel: How to work with VBA macros](https://stringfestanalytics.com/copilot-for-excel-how-to-work-with-vba-macros/)에 따르면, Copilot은 매크로를 스스로 실행하지 못해서 사람이 직접 추가하고 돌려야 해요. 이 글의 작성일은 확인하지 못했습니다. 작성 시점에 따라 지금과 다를 수 있어요. 같은 사이트의 [Office Scripts vs. VBA](https://stringfestanalytics.com/office-scripts-vs-vba-quiz/) 글은 웹 버전 Excel에서는 VBA 매크로를 실행할 수 없다고 설명합니다. 그래서 데스크톱 앱이 필요해요.
제가 만든 건 표에 적힌 사람들의 자리를 서로 바꿔 주는 기능이었어요. 두 사람을 골라 자리를 맞바꾸고, 안 맞는 입력은 안내창으로 막는 식입니다. 채팅 AI에는 이런 식으로 요청합니다. 아래는 따라 해 볼 수 있게 쓴 예시 문장이고, 제가 실제로 입력한 문장 그대로는 아니에요.
```
엑셀 VBA 매크로를 만들어 줘.
- A2:A21에 사람 이름 목록이 있어.
- 이름 두 개를 입력받아 서로 자리를 바꿔 줘.
- 이름이 목록에 없거나 칸이 비어 있으면 실행하지 말고 안내창을 띄워 줘.
나는 코딩을 몰라. 코드를 붙여넣는 방법과 각 줄이 하는 일을 주석으로 설명해 줘.
```
코드를 붙여넣는 창은 Alt + F11을 누르면 열려요. 개발 도구 탭이 안 보이면 파일 > 옵션 > 리본 사용자 지정에서 개발 도구를 체크하면 돼요.
🙋 직접 겪어보니
회사에서 매일 손으로 하던 작업을 자동화해 보려고 시작했어요. 처음 품은 질문은 하나였습니다. "한 번 만든 걸 다른 시트에도 쓸 수 있을까?"
아래 코드는 각 벽에서 제가 손본 부분을 설명하려고 단순하게 만든 예시예요. AI가 준 원본 코드가 아닙니다. 셀 주소와 숫자도 설명용으로 붙인 거예요.
1. 빨간 오류창: 단계를 적어 두세요
오류 번호는 검색할 때 "VBA 런타임 오류 1004"처럼 번호를 붙여 찾으면 됩니다. 1004는 엑셀이 시킨 일을 해내지 못했을 때 나오는 넓은 범위의 오류예요. 9번은 "인덱스 범위 벗어남"으로, 없는 번호의 항목을 꺼내려 할 때 나옵니다.
원인은 값이 빈 칸을 코드가 그대로 읽은 거였어요. 칸이 채워진 시트에서는 잘 돌다가, 빈 칸이 있는 시트에서 멈춘 겁니다. 나중에는 빈 목록 때문에 9번 오류도 났어요. 항목이 하나도 없는 목록에서 첫 번째 항목을 꺼내려 한 거죠. 어디서 멈췄는지 알 수 없어서 한참 답답했습니다. 그래서 코드 곳곳에 "지금 몇 단계"를 기록해 두고, 오류가 나면 그 단계가 같이 뜨게 바꿨어요. 이후엔 원인을 훨씬 빨리 찾았습니다.
고친 부분은 빈 칸 검사와 단계 변수 두 가지예요.
```
Dim stepName As String ' 지금 몇 단계인지 적어 두는 변수
On Error GoTo ErrHandler
stepName = "1단계: 입력 칸 읽기"
If Trim(ws.Range("B2").Value) = "" Then
MsgBox ws.Name & " 시트의 B2가 비어 있어요."
Exit Sub ' 빈 칸이면 여기서 멈춘다
End If
' ... 다음 단계 ...
Exit Sub
ErrHandler:
MsgBox "오류 " & Err.Number & " / 멈춘 곳: " & stepName
```
2. 늘어나는 규칙: 통째로 저장하고 한 번에 계산하세요
두 사람이 자리를 바꾸는 기능을 만들었더니, 세 사람이 A→B→C→A로 도는 경우와 한 사람이 여러 번 끼는 경우가 나왔어요. 하나씩 이어 붙이니 계속 꼬였습니다. 결국 바꾸기 전 상태를 통째로 저장하고, 그 기준으로 한 번에 계산하게 처음부터 다시 짰어요. 한 사람은 최대 세 번까지만 쓰게 하고, 넘으면 이름을 알려주며 막았습니다.
고친 부분은 "바꾸기 전 상태 저장"과 "횟수 제한"이에요.
```
Dim before As Variant, after As Variant
before = ws.Range("A2:A21").Value ' 바꾸기 전 상태를 통째로 저장
after = before ' 결과는 복사본에만 쓴다
' 모든 바꾸기 요청을 before 기준으로 계산해 after에 채운다
' (바꾸는 도중 값이 변해서 꼬이는 일을 막는다)
cnt(name) = cnt(name) + 1 ' 이름별 사용 횟수 (cnt는 Dictionary)
If cnt(name) > 3 Then
MsgBox name & " 님은 3번을 넘겨 쓸 수 없어요."
Exit Sub
End If
ws.Range("A2:A21").Value = after ' 마지막에 한 번에 반영
```
3. 시트 합치기: 주소는 맨 위 한곳에
시트 두 개를 합치고 행을 끼워 넣을 때마다 코드 속 셀 주소가 어긋나서 엉뚱한 칸에 값이 들어갔어요. 어제까지 되던 게 오늘은 안 되는 상황이었습니다. 시작 행, 끝 행 같은 숫자를 코드 맨 위에 모아 뒀어요. 행이 바뀌면 그 숫자만 고치면 됩니다.
```
' 코드 맨 위: 바뀔 수 있는 숫자는 여기에만 적는다 (숫자는 예시)
Const START_ROW As Long = 5 ' 데이터 시작 행
Const END_ROW As Long = 120 ' 데이터 끝 행
Const NAME_COL As Long = 2 ' 이름이 있는 열
For r = START_ROW To END_ROW
' 코드 안에서는 Cells(r, NAME_COL)처럼 위 상수만 쓴다
Next r
```
4. 18:06이 18:06이 아닐 때
가장 허무했어요. 화면엔 똑같이 18:06인데 실제로는 0.7541666… 같은 긴 소수였습니다. 붙여넣기로 들어온 값이었고, 눈으로는 구분이 안 됐어요. 이 값 하나가 정렬을 뒤틀어 한 칸이 엉뚱한 자리로 갔습니다. 소수 시간도 정상 시간으로 읽도록 바꿔서 해결했어요.
고친 부분은 "소수든 글자든 같은 시간으로 읽는 함수"예요. 아래는 그 방향을 보여 주는 예시입니다.
```
Function ToTime(v As Variant) As Double
If IsNumeric(v) Then
ToTime = Round(CDbl(v) * 1440) / 1440 ' 소수 시간을 분 단위로 맞춘다
Else
ToTime = TimeValue(CStr(v)) ' "18:06" 같은 글자는 시간으로 변환
End If
End Function
```
화면에 보이는 값과 칸 안의 실제 값은 다를 수 있어요. 결과가 이상하면 계산식을 의심하기 전에, 칸의 표시 형식을 바꿔서 진짜 값을 들여다보세요.
AI가 준 코드를 돌리기 전 체크리스트
- 실행 전에 파일 복사본부터 만드세요. 코드는 되돌리기(Ctrl+Z)가 안 돼서, 데이터가 망가지면 복사본으로만 돌아갈 수 있어요.
- 코드를 붙여넣은 뒤 AI에게 "이 코드가 어떤 파일·시트·셀을 건드리는지 한 줄씩 설명해 줘"라고 되물으세요. 출처를 모르는 코드나 파일 삭제·외부 전송이 들어 있는 코드는 돌리지 않는 게 안전합니다.
- 매크로 보안 설정과 회사 파일 정책을 확인하세요. 업무용 파일이라면 매크로를 써도 되는지, 회사 자료를 외부 AI에 붙여넣어도 되는지 IT 담당자에게 먼저 물어보세요.
누구에게 어떤 방식이 맞을까요
먼저 밝혀 둘 게 있어요. Copilot 창과 COPILOT 함수는 제가 직접 써 보지 않았습니다. 아래 Copilot 쪽 판단은 공식 문서와 외부 글을 읽고 정리한 거예요. 직접 해 본 건 채팅 AI + VBA뿐입니다. 아래 질문에 답해 보면 어느 쪽부터 볼지 좁혀져요.
- Copilot이 포함된 Microsoft 365 구독이 있나요? 없거나 메뉴가 안 보이면 Copilot 창 길은 막혀요.
- 엑셀 데스크톱 앱을 쓰나요? 웹 버전만 쓴다면 VBA 매크로는 실행할 수 없어요.
- 같은 작업을 얼마나 자주 반복하나요? 가끔이면 시트 안에서 끝나는 수식·차트·정렬을 Copilot 창에 맡겨 보는 쪽을 먼저 보세요. 매일 같은 순서라면 VBA가 후보예요.
- 규칙을 말로 정확히 설명할 수 있나요? 설명할 수 있다면 VBA도 해 볼 만해요. 설명이 어렵다면 처음엔 작은 작업 하나로 규칙부터 다듬어야 합니다.
매일 같은 순서로 반복하는 일이 있고 규칙을 말로 설명할 수 있다면 채팅 AI + VBA를 해 볼 만해요. 대신 붙여넣기, 실행, 오류 대응은 직접 해야 합니다. 업무용 파일이면 정확한 허용 범위는 회사 IT 담당자에게 확인하세요.
COPILOT 함수가 들어 있던 옛 파일은 값을 먼저 따로 복사해 두는 편이 안전해요. 함수가 사라진 뒤 다시 계산하면 값이 바뀌거나 오류가 날 수 있기 때문입니다.
완벽한 설명 없이 시작해도 됩니다
처음엔 "대기를 바꾼다"는 한 줄이면 끝날 줄 알았어요. 쓰다 보니 세 명이 돌려 바꾸는 경우처럼 예외가 계속 나왔고, 그때마다 규칙을 말로 다시 적어야 했습니다. 빨간 오류창이 뜰 때마다 덜컥했지만, 오류 번호와 멈춘 위치를 AI에게 그대로 알려주면 원인이 금방 좁혀졌어요. 화면을 캡처해서 보여주는 것만으로도 충분했습니다.
제가 먼저 자동화한 작업은 매일 손으로 하던 표 작업 중 두 사람의 자리를 바꾸는 부분이었어요. 여러분도 매일 손으로 하는 일 가운데, 규칙을 한 문장으로 말할 수 있는 것 하나를 골라 보세요. 파일 복사본을 만든 뒤 AI에게 요청하고, 위 체크리스트대로 실행해 보면 됩니다.
참고한 자료
글쓴이 · 코딩 모르는 AI 초보 · 직접 해보고 기록해요
코딩을 전혀 모르는 상태에서 AI를 하나씩 배우고 있어요. 엑셀·블로그·업무에 AI를 직접 써보면서 막혔던 곳과 해결한 과정을 화면 그대로 기록합니다.












0 댓글