함수로는 부족한데, 파이썬은 아직 부담스럽다면
엑셀로 반복 업무를 처리하다 보면 어느 순간 함수만으로는 한계에 부딪히는 시점이 옵니다. SUMIFS와 VLOOKUP, XLOOKUP을 조합해도 해결이 안 되는 경우는 대체로 다음과 같습니다.
- 매번 같은 순서로 여러 시트를 정리하고 서식을 맞추는 작업
- 파일을 열 때마다 반복되는 클릭 수십 번짜리 루틴
- 여러 통합문서를 열어 값을 옮기고 저장하는 작업
이런 상황에서 실무자들이 흔히 고민하는 선택지가 두 가지입니다. 하나는 엑셀 안에서 매크로(VBA)를 배우는 것이고, 다른 하나는 엑셀 반복 업무, 파이썬으로 10분 만에 끝내기에서 다룬 것처럼 파이썬으로 넘어가는 것입니다. 결론부터 말씀드리면 두 도구는 경쟁 관계가 아니라 적용 범위가 다른 도구입니다. 이번 글에서는 VBA가 언제 더 적합한 선택인지, 어떻게 시작하면 되는지를 정리해보겠습니다.
VBA와 파이썬, 무엇이 다른가요
VBA(Visual Basic for Applications)는 엑셀, 워드, 파워포인트 등 마이크로소프트 오피스 프로그램 안에 내장된 프로그래밍 언어입니다. 별도 프로그램 설치 없이 엑셀 리본 메뉴의 “개발 도구” 탭만 활성화하면 바로 사용할 수 있다는 점이 가장 큰 특징입니다.
반면 파이썬은 오피스 밖에서 동작하는 범용 언어로, 여러 파일을 한꺼번에 다루거나 웹에서 데이터를 가져오거나 데이터베이스와 연결하는 작업에 강점이 있습니다.
두 도구를 실무 상황에 맞춰 비교하면 다음과 같이 정리할 수 있습니다.
| 상황 | 적합한 도구 |
|---|---|
| 하나의 엑셀 파일 안에서 서식·시트를 정리 | VBA |
| 특정 셀 클릭, 입력, 저장을 자동 반복 | VBA |
| 수십 개 파일을 취합하거나 폴더 단위로 처리 | 파이썬 |
| 웹, API, 데이터베이스와 데이터를 주고받음 | 파이썬 |
| 다른 부서·PC에서도 실행해야 함 | 상황에 따라 다름 (VBA는 파일 종속적) |
정리하면, 지금 겪고 있는 반복 업무가 “엑셀 한 파일 안에서 끝나는 일”이라면 VBA로 충분하고, “여러 파일이나 외부 시스템과 얽힌 일”이라면 파이썬 쪽이 유리합니다.
매크로 기록기로 시작하기
VBA를 처음 배울 때 코드를 백지에서부터 작성할 필요는 없습니다. 엑셀에는 “매크로 기록” 기능이 있어서, 사용자가 클릭하고 입력하는 과정을 그대로 코드로 변환해줍니다.
개발 도구 탭에서 매크로 기록을 누르고 평소 하던 작업, 예를 들어 특정 열에 서식을 적용하고 합계를 구하는 과정을 그대로 수행한 뒤 기록을 중지하면, 다음과 비슷한 코드가 자동으로 생성됩니다.
Sub 서식정리()
Range("B2:B100").NumberFormat = "#,##0"
Range("B101").Formula = "=SUM(B2:B100)"
Range("B101").Font.Bold = True
End Sub
이렇게 생성된 코드를 그대로 실행 버튼에 연결해두면, 다음부터는 버튼 클릭 한 번으로 같은 작업이 반복됩니다. 처음에는 이 자동 생성 코드를 읽어보는 것만으로도 VBA 문법에 익숙해지는 데 큰 도움이 됩니다.
직접 코드를 조금씩 수정해보기
매크로 기록기로 만든 코드는 종종 불필요한 줄이 많거나, 조건에 따라 다르게 동작해야 하는 상황을 처리하지 못합니다. 이 지점부터는 코드를 직접 열어 손보는 연습이 필요합니다.
예를 들어 여러 시트에 있는 값을 조건에 따라 합산하고 싶다면 다음과 같은 형태로 반복문과 조건문을 추가할 수 있습니다.
Sub 조건부합계()
Dim ws As Worksheet
Dim 합계 As Double
Dim i As Integer
합계 = 0
For Each ws In ThisWorkbook.Worksheets
For i = 2 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
If ws.Cells(i, 3).Value = "완료" Then
합계 = 합계 + ws.Cells(i, 2).Value
End If
Next i
Next ws
MsgBox "완료 건 합계: " & 합계
End Sub
이 코드는 통합문서 안의 모든 시트를 돌면서 C열 값이 “완료”인 행의 B열 값을 더하는 예시입니다. 여러 시트에 흩어진 값을 합산한다는 점에서는 여러 시트에 흩어진 데이터, 엑셀 함수로 자동 합산하기에서 다룬 SUMIF, 3D 참조 방식과 목적이 비슷하지만, 조건이 복잡해지거나 메시지 박스로 결과를 즉시 확인하고 싶을 때는 VBA 쪽이 더 유연합니다.

VBA를 배우기 전에 점검할 것들
VBA는 진입 장벽이 낮은 만큼 무분별하게 사용하면 유지보수 부담이 커진다는 점도 함께 알아두셔야 합니다.
- 매크로가 저장된 파일(.xlsm)은 다른 사람 PC에서 보안 경고로 막힐 수 있습니다
- 코드를 작성한 사람이 퇴사하거나 자리를 옮기면 아무도 못 고치는 코드가 되기 쉽습니다
- 여러 파일, 여러 폴더를 넘나드는 자동화라면 처음부터 파이썬으로 접근하는 편이 낫습니다
특히 두 번째 문제는 VBA뿐 아니라 모든 자동화 스크립트에 해당하는 이야기입니다. 어떤 도구로 자동화를 만들든, 자동화 스크립트, 만들고 나서가 더 중요합니다에서 다룬 것처럼 무엇을 자동화했고 어떻게 동작하는지 기록을 남겨두는 습관이 결국 오래가는 자동화를 만듭니다.
만약 지금 하려는 자동화가 반복 업무의 시작 단계이고 앞으로 파이썬까지 확장할 계획이 있다면, 비전공 사무직을 위한 코딩 입문 로드맵에서 소개한 것처럼 내 업무의 반복 지점을 먼저 파악하는 것부터 시작하시는 것을 권합니다. VBA든 파이썬이든, 결국 중요한 것은 어떤 도구를 배우느냐보다 어떤 반복을 없애고 싶은지를 명확히 하는 일이기 때문입니다.
정리하며
VBA는 엑셀 안에서 끝나는 반복 업무를 빠르게 줄이는 데 유용한 도구입니다. 매크로 기록기로 시작해 조건문과 반복문을 조금씩 익히면, 별도 프로그램 설치 없이도 상당한 수준의 자동화가 가능합니다. 다만 여러 파일이나 시스템을 넘나드는 업무라면 파이썬 쪽이 더 적합하다는 점도 함께 고려해서 도구를 선택하시길 권합니다. 픽셀앤코드에서는 이런 실무형 자동화 학습을 조직의 업무 환경에 맞춰 단계적으로 안내하는 IT 교육 프로그램을 운영하고 있으니, 사내 반복 업무 개선을 고민 중이시라면 참고해보시기 바랍니다.