스프레드시트·1·2급 공통·18장
매크로와 VBA
매크로 기록과 실행, 매크로 이름·바로 가기 키 규칙, VBA 편집기와 프로시저, 주요 개체와 제어문을 정리합니다.
노란 밑줄n회 기출에 나온 지점(숫자는 등장 문항 수)✎ 는 덧붙인 필기
출제 비중 — 매크로128회 는 2~3문항 고정. 이름 규칙과 기록 시 저장 위치, 프로시저44회 문법이 반복 출제된다.
1. 매크로 기록
- 매크로: 반복 작업을 기록해 두고 한 번에 실행하는 기능. [개발 도구] 또는 [보기] 탭에서.
- 기록 대화상자 4가지 항목
| 항목 | 규칙 |
|---|---|
| 매크로 이름 | 첫 글자는 반드시 문자. 공백 사용 불가(대신 _). / ? * . 등 특수문자 불가. 대소문자 구분 안 함 |
| 바로 가기 키 | Ctrl + 영문 소문자. 대문자로 지정하면 Ctrl + Shift + 영문. 숫자·특수문자·한글 불가. 엑셀 기본 단축키보다 매크로가 우선 |
| 매크로 저장 위치 | 개인용 매크로 통합 문서(모든 통합 문서에서 사용) / 새 통합 문서 / 현재 통합 문서 |
| 설명 | 주석. 실행에 영향 없음 |
- 기록 중의 모든 동작이 기록된다. 잘못 입력해 지운 것도 기록되므로 순서를 미리 생각해 둘 것.
- 절대 참조 기록이 기본이다. [상대 참조로 기록] 을 누르면 현재 셀 기준 상대 위치로 기록된다.
- 매크로가 포함된 파일은 .xlsm(매크로 사용 통합 문서) 으로 저장해야 한다.
2. 매크로 실행과 관리
- 실행 방법: [매크로] 대화상자 → 실행 · 바로 가기 키 · 도형·단추·그림에 연결 · 빠른 실행 도구 모음 · VBE 에서 F5.
- 한 단계씩 실행은 F8. 중단점을 걸어 확인할 수 있다.
- [매크로] 대화상자에서 실행·한 단계씩·편집·삭제는 되지만 이름 변경 메뉴는 없다 (편집 창에서 직접 고친다).
- 보안: [매크로 보안]에서 모든 매크로 제외(알림 표시) 등을 지정.
3. VBA 편집기(VBE)
- 열기: Alt + F11. 구성: 프로젝트 탐색기 · 속성 창 · 코드 창 · 직접 실행 창(Ctrl+G).
- 프로시저44회
| 종류 | 특징 |
|---|---|
| Sub 프로시저 | 값을 반환하지 않는다. 매크로 기록은 모두 Sub. Sub 이름() … End Sub |
| Function 프로시저 | 값을 반환한다. 워크시트에서 사용자 정의 함수로 쓸 수 있다 |
| Property | 개체의 속성 정의 |
- 이벤트 프로시저15회: 특정 사건이 일어날 때 자동 실행. Worksheet_Change, Workbook_Open, Worksheet_SelectionChange 등.
- 주석은 작은따옴표(') 로 시작, 한 줄이 길면 밑줄(_) 로 이어 쓴다.
4. 주요 개체와 속성
| 개체 | 뜻 |
|---|---|
| Application | 엑셀 프로그램 전체 |
| Workbooks / ActiveWorkbook | 통합 문서 |
| Worksheets / ActiveSheet | 워크시트 |
| Range / Cells | 셀. Range("A1"), Cells(행, 열) |
| Selection | 현재 선택 영역 |
- 표기: 개체.속성 = 값 (예: Range("A1").Value = 100), 개체.메서드 (예: Range("A1").Select).
- 자주 쓰는 속성/메서드: Value · Formula · Font.Bold · Interior.Color · Select · Copy · ClearContents · Offset · End(xlDown).
5. 제어문
- 조건문
- If 조건 Then … ElseIf … Else … End If
- Select Case 변수 / Case 값 / Case Else / End Select
- 반복문
- For i = 1 To 10 Step 2 … Next i
- For Each 개체 In 컬렉션 … Next
- Do While 조건 … Loop / Do Until 조건 … Loop
- 메시지: MsgBox(메시지 표시) / InputBox(값 입력받기).
- 변수 선언: Dim 변수 As 자료형. 모듈 첫 줄에 Option Explicit 를 쓰면 선언하지 않은 변수를 쓸 때 오류가 난다.
마무리 체크
- 매크로 이름: 문자로 시작·공백 불가·특수문자 불가
- 바로 가기 키: Ctrl+영문 소문자, 대문자면 Ctrl+Shift, 기본 단축키보다 우선
- 개인용 매크로 통합 문서에 저장하면 모든 문서에서 사용
- 기본은 절대 참조 기록
- Sub(값 없음) vs Function(값 반환, 사용자 정의 함수)
- Alt+F11 편집기, F5 실행, F8 한 단계씩