엑셀 전문가 · 대화형 레슨 12개 중 5번째
VBA 자동화
A12의 매크로 기록(Record Macro)은 클릭할 때마다 VBA를 대신 써 줘요. 직접 작성해야 기록된 매크로를 유지 관리할 수 있는 코드로 바꿀 수 있어요. 똑같은 줄 열 개 대신 반복문 하나, 그냥 멈춰 버리는 매크로 대신 오류 처리기를 쓰는 식이죠.
화면 기준: Windows용 Microsoft 365 Excel. 연습은 어느 브라우저에서나 할 수 있어요.
글로 보는 튜토리얼엑셀 VBA로 작업 자동화하기실력 점검
먼저 해 보세요:
- 이름이 분명하고 목적이 하나뿐인 Sub를 작성해요.
- 셀마다 한 줄씩 쓰는 대신 범위를 반복문으로 처리해요.
- 조용히 멈추는 대신 실패를 알려 주는 오류 처리기를 추가해요.
Select와Activate가 보통 매크로를 더 안전하게 쓸 수 있다는 신호인 이유를 설명해요.
모두 익숙하다면 E6 — Office 스크립트와 Power Automate 이해로 건너뛰세요.
개념 익히기
이번 레슨에서 배울 내용
- 프로시저 구조
Sub는 작업을 수행하고,Function은 값을 돌려줘요. 각각에 한 가지 일만 맡기고, 그 일이 무엇인지 드러나는 이름을 붙이세요.- 변수와 상수
Dim total As Double은 형식을 지정해 변수를 선언하고,Const MaxRows As Long = 10000은 절대 바뀌지 않는 값에 이름을 붙여요. 둘 다 프로시저 중간에 설명 없이 박혀 있는 숫자보다 훨씬 나아요.- 반복문
For Each cell In rng는 범위의 모든 셀을 차례로 처리하고,Do While은 조건이 바뀔 때까지 반복해요. 어느 쪽이든 복사해 붙여넣은 열 줄을 규모가 커져도 버티는 패턴 하나로 바꿔 줘요.- 범위를 안전하게 다루기
Select한 다음ActiveCell을 쓰는 대신ws.Range("A2:A10")을 직접 참조하세요. 더 안전하고 빠르고, 사용자가 먼저 다른 곳을 클릭해 두었어도 계속 제대로 동작해요.- 오류 처리
On Error GoTo ErrHandler는 실패를 잡아서 분명하게 알려 줘요. 매크로가 아무 설명 없이 작업 도중에 그냥 멈춰 버리는 대신에요.- 이벤트
- 누군가 버튼 누르기를 기억할 필요 없이, 특정 계기가 생기면 자동으로 실행되는 코드예요.
Workbook_Open,Worksheet_Change같은 것이요. - 사용자 안내 창
MsgBox는 사용자에게 무언가를 알리고,InputBox는 사용자에게 무언가를 물어봐요. 둘 다 매크로가 조용히 실패하거나 짐작으로 진행하지 않게 해 줘요.- 작업 기록 남기기
- 매크로가 실행될 때마다 Log 시트에 시간이 찍힌 줄을 한 줄씩 남겨요. 그러면 6개월 뒤에도 누구든 마지막으로 정상 동작한 때가 언제이고 무엇을 했는지 정확히 알 수 있어요.
엑셀에서 찾는 위치
개발 도구›Visual Basic(Alt+F11)
자동 저장 Ops.xlsm · 저장됨 검색–□✕
파일홈삽입페이지 레이아웃수식데이터검토보기자동화개발 도구도움말
Visual Basic
매크로
매크로 기록
상대 참조로 기록
매크로 보안
코드
Excel 추가 기능
추가 기능
삽입
디자인 모드
컨트롤
| A | B | C | D | E | F | G | H | ||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 지역 | 매출 | |||||||
| 2 | 북부 | 6,900 | |||||||
| 3 | 남부 | 5,400 | |||||||
| 4 | |||||||||
| 5 | |||||||||
| 6 | |||||||||
| 7 | |||||||||
| 8 | |||||||||
| 9 | |||||||||
| 10 |
Microsoft Visual Basic for Applications — Ops.xlsm - [Module1 (코드)]– □ ✕
Option Explicit
Sub FlagLowStock()
Dim cell As Range
On Error GoTo Fail
For Each cell In Sheet1.Range("B2:B100")
If cell.Value < 10 Then cell.Interior.Color = vbYellow
Next cell
LogRun "FlagLowStock", "OK"
Exit Sub
Fail:
LogRun "FlagLowStock", Err.Description
End Sub
◀ ▶Sheet1+
준비접근성: 계속 진행 가능▦ ▤ ▥ — + 100%
옆으로 밀어 창 전체를 볼 수 있어요.
- 1개발 도구 탭(파일 › 옵션 › 리본 사용자 지정에서 켜요).
- 2Visual Basic(Alt+F11)으로 편집기를 열고 삽입 › 모듈로 코드 모듈을 추가해요.
- 3Option Explicit, Select 없이 Range 반복, 오류 처리, 기록 호출.
- 4매크로(Alt+F8)로 실행하고, 이벤트 코드는 시트나 ThisWorkbook 모듈에 넣어요.
Microsoft 365용 Excel(Windows) 화면을 재현한 그림입니다. Mac, 웹용 Excel 또는 좁은 창에서는 리본 배치가 조금 다를 수 있습니다.
따라 만들기
빈칸 네 개를 채워 데이터를 새로 고치고, 시간을 기록하고, PDF로 내보내고, 실패하면 분명하게 알려 주는 매크로를 완성하세요.
혼자 응용하기
실제로 배포할 수 있는 매크로 작성하기
실제 통합 문서의 데이터를 새로 고치고, 시간을 기록하고, PDF로 내보내는 매크로를 작성해 보세요. 엑셀이 작업 도중에 멈춰 버리게 두지 말고, 정확히 무엇이 실패했는지 알려 주는 오류 처리기도 넣으세요. 실행할 때마다 Log 시트에 한 줄씩 기록도 남기고요.
이 레슨에서 틀린 부분을 찾았거나 제안이 있나요? 의견 보내기