티스토리 뷰
엑셀의 매크로(Macro)는 반복적으로 수행하는 작업을 자동화하는 기능이다. 사용자가 수행한 작업을 기록하여 동일한 작업을 다시 실행할 수 있으며, 필요에 따라 VBA(Visual Basic for Applications) 코드를 수정하여 자동화 기능을 확장할 수 있다.
이번 장에서는 매크로 기록 → 매크로 수정 → 매크로 실행의 과정을 하나의 실습 예제를 통하여 학습한다. 복잡한 VBA 프로그래밍보다는 Excel 365의 매크로 기록 기능을 활용하고, 생성된 코드를 간단하게 수정하는 데 중점을 둔다.
Section 01. 매크로의 이해
1. 매크로란?
매크로는 사용자가 엑셀에서 수행하는 일련의 작업을 기록하고, 이를 하나의 명령으로 반복 실행하도록 하는 자동화 기능이다.
예를 들어 매월 판매실적 보고서를 작성하면서 제목에 굵은 글꼴을 적용하고, 표에 테두리를 설정하고, 금액에 천 단위 구분 기호를 표시한다고 가정하자. 이러한 작업을 매크로로 기록하면 다음부터는 매크로를 실행하는 것만으로 동일한 서식을 적용할 수 있다.
매크로 작업과정

2. 개발 도구 탭 표시하기
매크로 기능을 사용하기 위해서는 리본 메뉴에 [개발 도구] 탭을 표시하는 것이 편리하다.
💻 실습하기 — 개발 도구 활성화
- [파일] → [옵션]을 선택한다.
- [리본 사용자 지정]을 선택한다.
- 오른쪽의 [기본 탭]에서 [개발 도구]를 체크한다.
- [확인]을 클릭한다.

개발 도구 탭의 주요 기능은 다음과 같다.
| 메뉴 | 기능 |
| Visual Basic | VBA 편집기 실행 |
| 매크로 | 매크로 목록 확인, 실행, 편집, 삭제 |
| 매크로 기록 | 사용자의 작업을 매크로로 기록 |
| 상대 참조로 기록 | 활성 셀을 기준으로 상대적인 이동 기록 |
| 삽입 | 단추 등 양식 컨트롤 삽입 |
3. 매크로 파일 형식
| .xlsx | 일반 엑셀 통합 문서, VBA 매크로 저장 불가 |
| .xlsm | 매크로 사용 통합 문서 |
| .xlsb | 바이너리 통합 문서, 매크로 저장 가능 |
🎯 MOS 출제 포인트
매크로를 작성한 통합 문서는 일반적으로 Excel 매크로 사용 통합 문서(*.xlsm) 형식으로 저장하여야 한다. .xlsx 형식으로 저장하면 VBA 매크로 코드가 유지되지 않는다.
또한 출처를 신뢰할 수 없는 파일의 매크로는 실행하지 않도록 주의한다.
Section 02. 매크로 생성하기
1. 실습 시나리오 — 판매실적 보고서 자동 서식
다음과 같은 판매실적 데이터가 있다고 가정하자. 매월 새로운 데이터가 입력될 때마다 표 제목, 머리글, 판매금액에 동일한 서식을 적용하는 매크로를 작성한다.
💻 실습하기 01 — 매크로 기록

| P001 | 무선 마우스 | 25 | 18,000 | 450,000 |
| P002 | 기계식 키보드 | 18 | 65,000 | 1,170,000 |
| P003 | USB 허브 | 32 | 22,000 | 704,000 |
| P004 | 웹캠 | 12 | 78,000 | 936,000 |
| P005 | 모니터 | 15 | 210,000 | 3,150,000 |
실습 시트에서는 A1에 월간 판매실적 보고서, A3:E3에 머리글, A4:E8에 데이터를 배치한다. E4 셀에는 =C4*D4를 입력하고 E8까지 자동 채우기 한다.
STEP 1. 매크로 기록 시작
- [개발 도구] → [매크로 기록]을 클릭한다.
- 매크로 이름을 SalesFormat으로 입력한다.
- 바로 가기 키는 지정하지 않는다.
- 매크로 저장 위치는 [현재 통합 문서]를 선택한다.
- [확인]을 클릭한다.
STEP 2. 서식 작업 수행
매크로가 기록되는 동안 다음 작업을 순서대로 수행한다.
| 순서 | 범위 | 수행 작업 |
| 1 | A1:E1 | 셀 병합하고 가운데 맞춤 |
| 2 | A1 | 글꼴 크기 16pt, 굵게 |
| 3 | A3:E3 | 진한 파란색 채우기, 흰색 글꼴 |
| 4 | A3:E8 | 모든 테두리 적용 |
| 5 | D4:E8 | 천 단위 구분 기호가 있는 숫자 형식 적용 |
| 6 | A:E | 열 너비 자동 맞춤 |
STEP 3. 매크로 기록 종료
[개발 도구] → [기록 중지]를 클릭한다.
이제 SalesFormat이라는 매크로가 생성되었다. 엑셀은 기록한 작업을 VBA 코드로 변환하여 저장한다. 주의: 매크로 기록 중에는 불필요한 셀 선택이나 서식 변경을 하지 않도록 한다. 이러한 작업도 코드에 기록될 수 있다.
2. 절대 참조와 상대 참조 기록
매크로를 기록할 때 셀 위치를 어떤 방식으로 기록할 것인지 결정할 수 있다.
| 구분 | 절대참조기록 | 상대참조기록 |
| 기준 | 지정된 셀 주소 | 현재 활성 셀 |
| 예 | A1 셀 선택 | 현재 셀에서 오른쪽 한 칸 이동 |
| 활용 | 정해진 위치의 보고서 | 시작 위치가 달라지는 반복 작업 |
예를 들어 A1에서 B1로 이동하는 작업을 기록할 경우 절대 참조에서는 Range("B1").Select와 같은 코드가 생성될 수 있지만, 상대 참조에서는 ActiveCell.Offset(0, 1).Select와 같은 코드가 생성될 수 있다.
🎯 MOS 출제 포인트
매크로 기록에서 상대 참조를 사용하면 매크로 실행 당시의 활성 셀을 기준으로 작업이 수행된다. 따라서 항상 고정된 위치에서 실행하는 매크로와, 실행 위치에 따라 작업 범위가 달라지는 매크로의 차이를 이해하여야 한다.
Section 03. 매크로 수정하기
매크로 기록 기능은 사용자의 작업을 자동으로 VBA 코드로 변환하지만, 기록된 코드에는 불필요한 셀 선택 명령이 포함될 수 있다. VBA 편집기를 이용하면 이러한 코드를 확인하고 수정할 수 있다.
1. VBA 편집기 실행
💻 실습하기 02 — 매크로 코드 확인
- [개발 도구] → [매크로]를 선택한다.
- 목록에서 SalesFormat을 선택한다.
- [편집] 버튼을 클릭한다.
- VBA 편집기가 열리면 생성된 코드를 확인한다.
- VBA 편집기는 Alt + F11 단축키로도 실행할 수 있다.

매크로 기록 과정에서 다음과 같은 코드가 생성될 수 있다.
Sub SalesFormat()
Range("A1:E1").Select
With Selection
.HorizontalAlignment = xlCenter
.MergeCells = True
End With
Range("A1").Select
Selection.Font.Bold = True
Selection.Font.Size = 16
End Sub
위 코드는 기록된 코드의 일부를 단순화한 예시이다. 실제 생성 코드는 엑셀 버전과 수행 작업에 따라 달라질 수 있다.
2. 매크로 코드의 기본 구조
| VBA 명령어 | 설명 |
| Sub SalesFormat() | 매크로 시작 및 이름 선언 |
| Range("A1") | A1 셀 지정 |
| .Select | 셀 또는 범위 선택 |
| Selection | 현재 선택된 개체 |
| .Font.Bold = True | 글꼴 굵게 설정 |
| .Font.Size = 16 | 글꼴 크기 16pt 설정 |
| End Sub | 매크로 종료 |
3. VBA 코드 수정하기
이번에는 기록된 매크로를 수정하여 보고서 제목의 글꼴 크기를 16pt에서 20pt로 변경하고, 제목 글꼴 색상을 파란색으로 설정한다.
💻 실습하기 03 — 매크로 수정

STEP 1. 글꼴 크기 변경
기존 코드에서 다음 부분을 찾는다.
Selection.Font.Size = 16
16을 20으로 변경한다.
Selection.Font.Size = 20
STEP 2. 글꼴 색상 변경
다음 코드를 추가한다.
Selection.Font.Color = RGB(0, 102, 204)
STEP 3. 코드 실행 확인

수정한 코드가 포함된 매크로를 다시 실행하면 제목의 글꼴 크기가 20pt로 변경되고, 파란색이 적용된다.
4. 매크로 코드 개선하기
기록된 코드는 Select와 Selection을 자주 사용하지만, VBA에서는 셀 범위를 직접 지정하여 서식을 적용할 수도 있다.
Sub TitleFormat()
With Range("A1")
.Font.Bold = True
.Font.Size = 20
.Font.Color = RGB(0, 102, 204)
End With
End Sub
With ~ End With 구문은 동일한 개체에 여러 속성을 적용할 때 사용한다. 이렇게 수정하면 셀을 선택하지 않고도 A1 셀의 서식을 변경할 수 있다.
🎯 MOS 출제 포인트
MOS Excel Expert의 매크로 학습에서는 복잡한 VBA 프로그램을 직접 작성하는 것보다 매크로 기록, 이름 및 저장 위치 설정, 실행, 간단한 편집을 우선 학습하는 것이 적절하다. 위의 VBA 코드 수정은 매크로의 동작 원리를 이해하기 위한 확장 실습이다.
Section 04. 매크로 실행하기
생성한 매크로는 여러 가지 방법으로 실행할 수 있다. 매크로 목록에서 실행하는 방법과 워크시트의 단추를 이용하는 방법을 실습한다.
1. 매크로 목록에서 실행
💻 실습하기 04 — 매크로 실행
- 매크로를 적용할 시트를 선택한다.
- Alt + F8을 누른다.
- 매크로 목록에서 SalesFormat을 선택한다.
- [실행]을 클릭한다.기록된 서식이 적용되었는지 확인한다.
기존 서식과 비교하려면 실습 시트를 미리 복제하고, 복제한 시트에서 매크로를 실행한다. 고정 셀 주소를 사용하는 매크로는 실행할 시트의 데이터 배치가 같아야 한다.
2. 단추를 이용한 매크로 실행
엑셀에서는 워크시트에 단추를 배치하고 해당 단추에 매크로를 연결할 수 있다.

💻 실습하기 05 — 매크로 실행 단추 만들기
- [개발 도구] → [삽입]을 클릭한다.
- [양식 컨트롤]에서 [단추]를 선택한다.
- 워크시트의 G3:I4 부근에 단추를 그린다.
- [매크로 지정] 대화상자에서 SalesFormat을 선택한다.
- [확인]을 클릭한다.
- 단추의 텍스트를 보고서 서식 적용으로 변경한다.
- 이제 단추를 클릭하면 매크로가 실행된다.



3. 매크로 실행 방법 비교
| 실행 방법 | 메뉴 및 단축키 |
| 매크로 대화상자 | [개발 도구] → [매크로] |
| 단축키 | Alt + F8 → 매크로 선택 |
| VBA 편집기 | 커서를 프로시저 내부에 놓고 F5 |
| 양식 컨트롤 | 연결된 단추 클릭 |
| 지정한 바로 가기 키 | 매크로 옵션에서 설정한 키 사용 |
📝 종합문제 — 월간 판매실적 보고서 자동화
한 기업에서는 매월 상품별 판매실적을 엑셀로 관리하고 있다. 담당자는 반복되는 보고서 서식 작업을 자동화하기 위하여 매크로를 작성하려고 한다.
다음 조건에 따라 매크로를 생성하고 수정한 후 실행하시오.
- 매크로 이름을 MonthlyReport로 설정하고 현재 통합 문서에 기록하시오.

- A1:E1을 병합하고 가운데 맞춤을 적용하시오.
- A1 제목에 굵게, 글꼴 크기 16pt를 적용하시오.
- A3:E3에 파란색 채우기, 흰색 글꼴을 적용하시오.
- D4:E8에 천 단위 구분 기호가 있는 숫자 서식을 적용하시오.
- VBA 편집기에서 제목 글꼴 크기를 20pt로 수정하시오.
- G3:I4 위치에 양식 컨트롤 단추를 만들고 MonthlyReport 매크로를 연결하시오.
- 매크로를 실행하고 .xlsm 형식으로 저장하시오.

📌 핵심 요점
- 매크로 생성: [개발 도구] → [매크로 기록]
- 매크로 수정: Alt + F11 → VBA 편집기
- 매크로 실행: Alt + F8 → 매크로 선택 → [실행]
- 단추 연결: [개발 도구] → [삽입] → [단추(양식 컨트롤)]
- 매크로 저장: .xlsm 파일 형식 사용
- Total
- Today
- Yesterday
- 파이썬
- 안드로이드
- HTML
- 휴리스틱평가
- UI
- Idle
- 라이브러리
- MOS365
- figma
- 챗봇
- python
- 디지털미디어
- 챗GPT
- 엑셀365
- 관계자분석
- HCI
- matplotlib
- 초보자를 위한 텍스트마이닝
- 엑셀
- UX
- mos expert
- 데이터R지
- 자바스크립트
- 텍스트마이닝
- 프로토타입
- pygame
- 피그마
- 컴퓨팅사고력
- 파이썬기초
- 파이썬 기초
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 |