매일 같은 형식으로 데이터를 정리하거나, 동일한 서식을 반복 적용하거나, 여러 시트에서 같은 작업을 수행하는 일이 있나요.
매크로를 사용하면 이런 반복 작업을 녹화해두고 버튼 하나로 실행할 수 있어요.
매크로는 엑셀에 내장된 VBA(Visual Basic for Applications)라는 프로그래밍 언어로 동작합니다.
코딩을 몰라도 "매크로 기록" 기능으로 시작할 수 있고, 기본적인 VBA 문법을 익히면 더 복잡한 자동화도 가능해요.
이 글에서는 개발 도구 탭 설정, 매크로 기록, VBA 편집기 사용법, 기본 VBA 코드 구조, 간단한 실무 예제를 다룹니다.
사전 준비 - 개발 도구 탭 표시
매크로 관련 메뉴는 [개발 도구] 탭에 있어요.
기본적으로 숨겨져 있으므로 먼저 표시해야 합니다.
- [파일] → [옵션]
- [리본 사용자 지정] 선택
- 오른쪽 목록에서 "개발 도구" 체크
- [확인]
이제 리본 메뉴에 [개발 도구] 탭이 나타나요.
이 작업은 한 번만 하면 됩니다.
매크로 기록 - 코딩 없이 자동화하기
매크로 기록은 사용자의 엑셀 조작을 그대로 녹화하는 기능이에요.
녹화된 조작은 VBA 코드로 저장되고, 나중에 재실행할 수 있습니다.
기록 순서
- [개발 도구] → [매크로 기록] 클릭
- 매크로 이름 입력 (예: 서식정리)
- 바로 가기 키 설정 (선택, 예: Ctrl+Shift+S)
- 매크로 저장 위치: "현재 통합 문서" 선택
- 설명 입력 (선택, 나중에 용도를 기억하기 위해 권장)
- [확인] → 이 시점부터 모든 조작이 기록됨
- 자동화할 작업 수행 (예: 셀 서식 변경, 정렬, 필터 등)
- 작업 완료 후 [개발 도구] → [기록 중지]
주의사항:
- 기록 중 마우스 클릭, 키보드 입력이 모두 저장돼요
- 불필요한 조작(엉뚱한 셀 클릭 등)도 기록되므로 미리 순서를 정해두고 기록하세요
- 매크로 기록을 시작한 후 셀을 선택하는 것부터 기록이 시작돼요
매크로 실행
기록한 매크로를 실행하는 방법은 세 가지예요.
- 단축키: 기록 시 지정한 바로 가기 키 (예: Ctrl+Shift+S)
- 메뉴: [개발 도구] → [매크로] → 매크로 선택 → [실행]
- 단축키 Alt+F8 → 매크로 선택 → [실행]
매크로 기록 실습 - 셀 서식 한 번에 적용
매출 보고서에서 머리글 행에 배경색, 굵은 글꼴, 테두리를 적용하는 작업을 기록해볼게요.
- [개발 도구] → [매크로 기록] → 이름: 머리글서식 → [확인]
- 1행(A1:F1) 선택
- 배경색: 파란색 계열 선택
- 글꼴 색: 흰색, 굵게(Ctrl+B)
- 테두리: 모든 테두리 적용
- [기록 중지]
이제 다른 시트에서 Ctrl+Shift+단축키 또는 Alt+F8로 "머리글서식" 매크로를 실행하면 같은 서식이 즉시 적용돼요.
VBA 편집기 열기
매크로 기록으로 생성된 코드를 확인하거나, 직접 코드를 작성하려면 VBA 편집기를 열어야 해요.
방법: Alt+F11 (또는 [개발 도구] → [Visual Basic])
VBA 편집기 화면 구성:
- 왼쪽: 프로젝트 탐색기 (시트, 모듈 목록)
- 오른쪽: 코드 창 (코드를 작성/편집하는 공간)
매크로 기록으로 만든 코드는 "모듈(Module)" 안에 저장돼 있어요.
프로젝트 탐색기에서 "모듈" → "Module1"을 더블클릭하면 코드를 볼 수 있습니다.
VBA 코드 기본 구조
VBA에서 하나의 매크로는 Sub ~ End Sub 블록으로 구성돼요.
Sub 매크로이름()
'이 줄은 주석입니다 (작은따옴표 뒤 텍스트)
실행할 코드
End Sub
Sub는 "이 매크로의 시작", End Sub는 "이 매크로의 끝"이에요.
작은따옴표(')로 시작하는 줄은 주석으로, 실행되지 않고 설명 용도로 사용합니다.
셀 다루기 기초
VBA에서 셀을 참조하는 방법은 두 가지예요.
Range("A1").Value = "안녕하세요" 'A1 셀에 텍스트 입력
Range("B2").Value = 100 'B2 셀에 숫자 입력
Cells(1, 1).Value = "안녕하세요" '1행 1열(=A1)에 텍스트 입력
Cells(2, 2).Value = 100 '2행 2열(=B2)에 숫자 입력
Range는 "A1" 같은 셀 주소로 지정하고, Cells는 행번호와 열번호로 지정해요.
반복문에서는 행/열 번호를 변수로 바꿀 수 있는 Cells가 더 편리합니다.
셀 서식도 코드로 지정할 수 있어요.
Range("A1").Font.Bold = True '굵게
Range("A1").Font.Size = 14 '글꼴 크기
Range("A1").Interior.Color = vbYellow '배경색 노란색
변수 사용
값을 임시로 저장해두려면 변수를 선언해요.
Dim 이름 As String
Dim 나이 As Integer
Dim 매출 As Double
이름 = "김민수"
나이 = 30
매출 = 1234.56
Dim은 변수를 선언하는 키워드예요.
String은 텍스트, Integer는 정수, Double은 소수점 포함 숫자 형식입니다.
조건문 (If)
If 조건 Then
'조건이 참일 때 실행
Else
'조건이 거짓일 때 실행
End If
예시:
Sub 실적판정()
Dim 실적 As Double
실적 = Range("B2").Value
If 실적 >= 300 Then
Range("C2").Value = "달성"
Else
Range("C2").Value = "미달"
End If
End Sub
반복문 (For)
For 변수 = 시작값 To 끝값
'반복할 코드
Next 변수
예시 - 2행부터 10행까지 실적 판정을 반복:
Sub 실적판정_반복()
Dim i As Integer
For i = 2 To 10
If Cells(i, 2).Value >= 300 Then
Cells(i, 3).Value = "달성"
Else
Cells(i, 3).Value = "미달"
End If
Next i
End Sub
Cells(i, 2)는 i행의 2열(B열)을 의미해요.
i가 2에서 10까지 변하면서 B2:B10의 값을 확인하고 C2:C10에 결과를 입력합니다.
IF 함수(2편)로 할 수 있는 작업이지만, 조건이 복잡하거나 여러 시트에 걸쳐 처리해야 할 때는 VBA가 더 효율적이에요.
메시지 박스
MsgBox "작업이 완료되었습니다."
매크로 실행이 끝났을 때 알림을 표시하는 데 사용해요.
사용자에게 확인/취소를 묻는 용도로도 쓸 수 있습니다.
Dim 응답 As VbMsgBoxResult
응답 = MsgBox("실행하시겠습니까?", vbYesNo)
If 응답 = vbYes Then
'실행할 코드
End If
매크로 파일 저장
매크로가 포함된 파일은 일반 .xlsx로 저장하면 매크로가 삭제돼요.
반드시 "Excel 매크로 사용 통합 문서 (.xlsm)" 형식으로 저장해야 합니다.
[파일] → [다른 이름으로 저장] → 파일 형식: "Excel 매크로 사용 통합 문서 (*.xlsm)" 선택
xlsm 파일을 열 때 "매크로를 사용하도록 설정하시겠습니까?" 보안 경고가 나타나면 [콘텐츠 사용]을 클릭해야 매크로가 작동해요.
매크로 보안 설정
기본적으로 엑셀은 매크로를 비활성화해요.
신뢰할 수 없는 파일의 매크로가 자동 실행되는 것을 방지하기 위해서입니다.
[파일] → [옵션] → [보안 센터] → [보안 센터 설정] → [매크로 설정]
| 옵션 | 설명 |
|---|---|
| 모든 매크로 비활성화(알림 표시) | 기본값. 열 때마다 사용 여부를 묻는 알림 표시 |
| 모든 매크로 비활성화(알림 없음) | 매크로를 무조건 차단 |
| 모든 매크로 포함 | 모든 매크로 자동 실행 (보안상 비권장) |
기본 설정(알림 표시)을 유지하고, 신뢰할 수 있는 파일에서만 [콘텐츠 사용]을 클릭하는 것이 안전합니다.
자주 하는 실수 / 주의사항
1. 매크로 기록 중 실수한 조작도 기록됨
기록 중 잘못된 셀을 클릭하거나 불필요한 작업을 하면 그대로 코드에 포함돼요.
실수했다면 기록을 중지하고, VBA 편집기에서 해당 줄을 삭제하거나 처음부터 다시 기록하세요.
2. xlsm으로 저장하지 않으면 매크로가 사라짐
일반 xlsx 형식으로 저장하면 매크로가 모두 삭제되므로, 저장 시 파일 형식을 반드시 확인하세요.
3. 매크로는 Ctrl+Z(실행 취소)가 안 됨
매크로로 변경한 내용은 실행 취소가 되지 않아요.
중요한 데이터에 매크로를 실행하기 전에 파일을 미리 저장해두거나 복사본을 만들어 두세요.
4. 다른 사람에게 보낸 xlsm 파일에서 매크로가 안 될 수 있음
상대방의 매크로 보안 설정이 "모든 매크로 비활성화(알림 없음)"이면 매크로가 실행되지 않아요.
매크로 사용이 필요한 파일이라면 상대방에게 보안 설정 안내를 함께 전달하세요.
다음 단계 안내
이 글에서 다룬 내용은 매크로·VBA의 가장 기초적인 부분이에요.
여기서 더 나아가고 싶다면 아래 주제를 순서대로 공부해보세요.
- Do While / Do Until 반복문
- 배열(Array) 활용
- Workbook, Worksheet 개체 다루기 (여러 시트/파일 자동 처리)
- 사용자 정의 함수(Function) 만들기
- UserForm (입력 화면 만들기)
- 오류 처리 (On Error)
이 시리즈는 이번 편으로 마무리됩니다.
1편부터 15편까지 다룬 내용을 정리하면:
1
4편: VLOOKUP, IF, SUMIF/COUNTIF, 조건부 서식
5
8편: XLOOKUP, 피벗테이블, 텍스트 함수, INDEX+MATCH
9
12편: 데이터 유효성 검사, CONCATENATE/TEXTJOIN, 틀 고정/시트 보호, 날짜 함수
13
15편: INDIRECT/OFFSET, 차트 기초, 매크로/VBA 기초
각 편의 내용을 실무에서 직접 써보면서 익히면, 엑셀 활용 수준이 확실히 달라질 거예요.
'엑셀' 카테고리의 다른 글
| 엑셀 배열수식 FILTER SORT UNIQUE 함수 사용법 - 동적 배열 함수 (0) | 2026.02.23 |
|---|---|
| 엑셀 NETWORKDAYS WORKDAY 함수 사용법 - 근무일 계산 (0) | 2026.02.22 |
| 엑셀 차트 만들기 - 기초부터 서식 설정까지 (0) | 2026.02.21 |
| 엑셀 INDIRECT OFFSET 함수 사용법 - 동적 참조와 동적 범위 (0) | 2026.02.21 |
| 엑셀 날짜 함수 사용법 - TODAY YEAR MONTH DATEDIF 정리 (0) | 2026.02.19 |