13차시

매크로와 VBA 프로그래밍

Part 2. 스프레드시트 일반 · 출제 빈도 ★★☆

이 차시를 공부하는 이유

VBA는 어렵게 느껴지지만 시험에서는 짧은 코드의 실행 결과나 규칙만 묻습니다. 반복문의 횟수와 변수 값 변화를 손으로 추적하는 연습이 가장 효과적입니다.

2급에서 먼저 보면 좋은 내용

2급의 매크로 기록 규칙을 먼저 보세요. 1급은 VBA 반복문·MsgBox·Range 개체 코드 해석까지 나옵니다.

학습 목표

매크로 기록 대화상자의 이름·바로 가기 키·저장 위치 규칙을 설명할 수 있다.
절대 참조와 상대 참조 매크로의 실행 차이를 이해한다.
VBA의 모듈·프로시저·개체·속성·메서드·이벤트 개념을 구분할 수 있다.
반복문과 MsgBox, Range 개체가 들어간 짧은 코드의 결과를 예측할 수 있다.

핵심 개념

1. 매크로 기록
항목규칙
매크로 이름첫 글자는 문자, 이후 문자·숫자·밑줄(_) 가능. 공백과 / ? ' . - 등 기호는 불가. 셀 주소 형태(A1)도 불가. 기본 이름은 매크로1, 매크로2…
바로 가기 키영문자만 가능, Ctrl과 조합. 대문자로 입력하면 Ctrl+Shift가 자동 지정. 엑셀 기본 단축키보다 매크로 키가 우선. 지정하지 않아도 기록 가능
저장 위치현재 통합 문서 / 새 통합 문서 / 개인용 매크로 통합 문서(PERSONAL.XLSB) — 개인용에 저장하면 모든 통합 문서에서 실행 가능
설명매크로에 대한 간단한 설명 (선택 사항)
  • 기록된 매크로는 VBA 모듈에 저장되므로 Alt+F11(Visual Basic Editor)에서 수정할 수 있습니다. Alt+F8은 [매크로] 대화상자입니다.
  • 기본은 절대 참조로 기록됩니다. [개발 도구]→[코드]→[상대 참조로 기록]을 켜면 실행할 때의 셀 위치를 기준으로 동작합니다. 예: A1에서 A2:A5를 칠하도록 상대 기록 → C1에서 실행하면 C2:C5를 칠함
  • 매크로가 포함된 파일은 .xlsm(매크로 사용 통합 문서)으로 저장해야 합니다.
  • VBE에서 F5는 실행, F8은 한 단계씩 실행(디버깅)입니다.
  • 양식 컨트롤 단추를 넣으면 '매크로 지정' 창이 바로 뜨지만, ActiveX 컨트롤 단추는 뜨지 않고 이벤트 코드를 작성해야 하며 디자인 모드에서는 실행되지 않습니다.
시험 함정 포인트
'매크로 이름에 공백을 넣을 수 있다', '바로 가기 키에 숫자를 쓸 수 있다'는 모두 오답입니다.
2. VBA 프로그래밍 기본 용어
용어의미
모듈(Module)프로시저의 집합. 표준 모듈과 클래스 모듈(새 개체를 정의)
프로시저명령문의 묶음. Sub~End Sub(결과값 반환 없음), Function~End Function(결과값 반환), Property~End Property(속성 정의)
개체(Object)작업 대상 (Workbook, Worksheet, Range 등)
속성(Property)개체의 특성·상태 (Value, Name, Visible …)
메서드(Method)개체가 수행하는 동작 (Select, Copy, Add, Close …)
이벤트(Event)클릭, 셀 이동 같은 사건. 이벤트 발생 시 실행되는 코드 = 이벤트 프로시저
  • 변수 선언은 Dim 변수 As 형식(명시적 선언). 선언 없이 바로 쓰는 것은 묵시적 선언입니다.
  • 배열 첨자는 기본적으로 0부터 시작하며, 모듈 맨 위에 Option Base 1을 쓰면 1부터 시작합니다. Dim A(3)은 첨자 0~3, 요소 4개입니다.
3. 반복문과 조건문
For ~ Next
Sub 합계() Dim i As Integer, hap As Integer For i = 1 To 10 Step 2 ' 1, 3, 5, 7, 9 hap = hap + i Next i MsgBox hap ' 결과: 25 End Sub
반복문동작
Do While 조건 ~ Loop조건이 참인 동안 반복 (먼저 검사 → 0번 실행될 수 있음)
Do ~ Loop While 조건먼저 실행하고 검사 → 최소 1번 실행
Do Until 조건 ~ Loop조건이 참이 될 때까지(거짓인 동안) 반복
Do ~ Loop Until 조건최소 1번 실행 후 조건이 참이 될 때까지 반복
Exit For / Exit Do반복문을 즉시 빠져나옴
If ~ ElseIf ~ Else ~ End If / Select Case조건에 따른 분기
시험 함정 포인트
For i = 1 To 10 Step 2는 i가 1, 3, 5, 7, 9일 때 실행되어 5번 반복합니다. 반복 횟수와 마지막 변수 값을 묻는 문제가 자주 나옵니다.
4. MsgBox와 주요 개체
MsgBox 형식
응답 = MsgBox("계속할까요?", vbYesNoCancel + vbQuestion, "확인") ' 메시지 단추 종류 + 아이콘 제목
상수값의미
vbOKOnly / vbOKCancel0 / 1확인 / 확인·취소
vbAbortRetryIgnore2중단·다시 시도·무시
vbYesNoCancel / vbYesNo3 / 4예·아니오·취소 / 예·아니오
vbCritical / vbQuestion16 / 32중대 메시지 / 질의 경고 아이콘
vbExclamation / vbInformation48 / 64메시지 경고 / 메시지 정보 아이콘
  • Workbook: 속성 Name, Saved, Worksheets / 메서드 Add, Open, Close, Save, SaveAs
  • Worksheet: 속성 Cells, Range, Rows, Columns, Name, Visible / 메서드 Activate, Copy, Protect, Select
  • Range: 속성 Value, Address, Count, CurrentRegion(데이터가 있는 인접 영역), End, Offset(떨어진 범위) / 메서드 Select, Copy, Clear, ClearContents(내용만 지우기)
  • Range("A1").Offset(2, 1)은 A1에서 2행 아래, 1열 오른쪽인 B3입니다. Cells(2, 3)은 C2(행, 열 순서)입니다.

확인 문제

1 / 5
문제 1
엑셀의 매크로 기록에 대한 설명으로 옳지 않은 것은?
①
매크로 이름의 첫 글자는 반드시 문자여야 한다.
②
바로 가기 키에 대문자를 입력하면 Ctrl + Shift 조합으로 지정된다.
③
매크로 이름에는 공백을 사용할 수 있다.
④
개인용 매크로 통합 문서에 저장한 매크로는 모든 통합 문서에서 사용할 수 있다.
💡 정답 ③ 해설: 매크로 이름에는 공백과 / ? ' . - 같은 기호를 사용할 수 없습니다. 단어를 구분하려면 밑줄(_)을 씁니다.
문제 2
다음 VBA 코드를 실행했을 때 메시지 상자에 표시되는 값은?
Dim i, s
For i = 2 To 10 Step 3
    s = s + i
Next i
MsgBox s
①
15
②
18
③
21
④
54
💡 정답 ① 해설: i는 2, 5, 8일 때 실행되므로(11은 10을 넘어 종료) s = 2 + 5 + 8 = 15입니다.
문제 3
Range("B2").Offset(1, 2).Select 를 실행했을 때 선택되는 셀은?
①
C4
②
D3
③
D4
④
C3
💡 정답 ② 해설: Offset(행, 열)은 기준 셀에서 1행 아래, 2열 오른쪽으로 이동하므로 B2 → D3입니다.
문제 4
조건을 먼저 검사하지 않고 실행문을 최소 한 번은 실행한 뒤, 조건이 참인 동안 반복하는 구문은?
①
Do While 조건 ~ Loop
②
Do ~ Loop While 조건
③
Do Until 조건 ~ Loop
④
For ~ Next
💡 정답 ② 해설: Do ~ Loop While은 Loop 위치에서 조건을 검사하므로 실행문이 무조건 한 번은 실행됩니다.
문제 5
매크로를 '상대 참조로 기록'하여 [A1] 셀이 선택된 상태에서 [A2:A5]에 노란색 채우기를 지정하는 과정을 기록했다. [C1] 셀을 선택하고 이 매크로를 실행하면 노란색이 채워지는 범위는?
①
A2:A5
②
C2:C5
③
C1:C4
④
A1:A4
💡 정답 ② 해설: 상대 참조 매크로는 기록 시작 셀(A1)과의 상대 위치를 기억합니다. C1에서 실행하면 오른쪽으로 두 칸 이동한 C2:C5에 적용됩니다.
0/5
훌륭합니다!
모든 문제를 정확히 풀었습니다.

13차시 문제 더 풀기

확인문제와 실전 모의고사에서 이 차시 범위 문제만 모아 해설과 함께 볼 수 있습니다.

주제별 문제 보기
이전 차시
12차시. 데이터 관리·분석 도구
다음 차시
14차시. DB 개념·관계형 모델·정규화