Ch.7 실기 실전 연습
실기 — 매크로/VBA 기출 패턴 10선
기타 작업 15점: VBA 코드 한 줄이 합격을 가른다
실기 기타 작업에서 매크로/VBA는 매회 출제됩니다. 코드를 직접 작성할 필요는 없지만, 읽고 결과를 맞추는 능력이 필요합니다.
VBA 코드를 처음 보면 외계어처럼 느껴집니다
10가지 패턴만 익히면 어떤 VBA 문제든 풀 수 있습니다
핵심 내용
매크로는 반복 작업을 자동화하는 기능입니다. 2급 실기에서는 매크로 기록, 실행, 단축키 지정 3가지가 출제됩니다.
1. 개발 도구 탭 활성화: 파일 → 옵션 → 리본 사용자 지정 → 개발 도구 체크
2. 매크로 기록 시작: 개발 도구 → 매크로 기록 → 이름·단축키 지정
3. 작업 수행: 녹화 중 수행한 모든 동작이 VBA로 기록됨
4. 기록 중지: 개발 도구 → 기록 중지 (또는 상태표시줄 ■ 클릭)
5. 매크로 실행: 개발 도구 → 매크로 → 이름 선택 → 실행
매크로 이름 규칙: 문자 또는 밑줄(_)로 시작해야 합니다. 공백·특수문자·숫자로 시작 불가. 단축키는 Ctrl+소문자만 가능합니다.
' [패턴 1] Range로 셀 값 설정
Range("A1").Value = "합격"
Range("B1:B10").Value = 100
' [패턴 2] Cells로 셀 접근 (행, 열)
Cells(1, 1).Value = "이름" ' A1 셀
Cells(3, 2).Value = 500 ' B3 셀
' [패턴 3] 루프에서 Cells 사용
For i = 1 To 10
Cells(i, 3).Value = i * 100
Next i
' C1=100, C2=200, ..., C10=1000다음 VBA 코드 실행 후 B5 셀의 값은? ``` Cells(5, 2).Value = Cells(5, 1).Value * 2 ``` (단, A5 셀에 30이 입력되어 있음)
' [패턴 4] If-Then-Else 조건 분기
If Range("A1").Value >= 60 Then
Range("B1").Value = "합격"
Else
Range("B1").Value = "불합격"
End If
' [패턴 5] For 반복문
For i = 1 To 10
If Cells(i, 1).Value >= 80 Then
Cells(i, 2).Value = "우수"
End If
Next i
' [패턴 6] MsgBox 메시지 박스
MsgBox "작업이 완료되었습니다."
MsgBox "합계: " & Range("A1").Value다음 VBA 코드에서 MsgBox에 표시되는 내용은? ``` MsgBox "결과: " & (10 + 20) ```
' [패턴 7] 서식 변경
Selection.Font.Bold = True ' 굵게
Selection.Font.Color = vbRed ' 글꼴 빨강
Selection.Interior.Color = vbYellow ' 배경 노랑
Range("A1:D1").Font.Size = 14 ' 글꼴 크기
' [패턴 8] 시트 이름 변경 & 이동
ActiveSheet.Name = "결과표"
Worksheets("Sheet1").Select
Worksheets("데이터").Cells(1, 1).Value = "시작"자주 출제: `Selection`은 현재 선택된 영역, `ActiveSheet`는 현재 활성 시트를 의미합니다. Range를 명시하지 않으면 ActiveSheet가 기본 대상입니다.
다음 코드 실행 후 Sheet1의 이름은? ``` Worksheets("Sheet1").Select ActiveSheet.Name = "매출현황" ```
' [패턴 9] Sort — 정렬
Range("A1:D10").Sort Key1:=Range("B1"), _
Order1:=xlAscending, Header:=xlYes
' B열 기준 오름차순, 머리글 있음
' [패턴 10] CurrentRegion — 현재 영역
Range("A1").CurrentRegion.Select
' A1을 포함한 연속 데이터 영역 전체 선택
' (빈 행/열로 둘러싸인 직사각형 범위)
' 현재 영역 + 정렬 결합
Range("A1").CurrentRegion.Sort _
Key1:=Range("C1"), Order1:=xlDescendingRange("A1").CurrentRegion이 선택하는 범위는?
Sub 성적처리()
Dim i As Integer
For i = 2 To 11
If Cells(i, 3).Value >= 80 Then
Cells(i, 4).Value = "합격"
Cells(i, 4).Font.Color = vbBlue
Else
Cells(i, 4).Value = "불합격"
Cells(i, 4).Font.Color = vbRed
End If
Next i
MsgBox "성적 처리 완료"
End Sub위 코드에서 C3 셀에 75가 입력되어 있다면, D3 셀의 값과 글꼴 색은?
VBA에서 Cells(i, 3)은 __열의 i번째 행을 의미한다.
핵심 정리
- 1매크로 기록: 개발 도구 → 매크로 기록 → 작업 → 기록 중지
- 2패턴 1: Range("A1").Value — 셀 주소로 값 설정
- 3패턴 2: Cells(행, 열).Value — 행/열 번호로 셀 접근
- 4패턴 3: For i = 1 To N + Cells(i, 열) — 루프에서 순차 접근
- 5패턴 4: If-Then-Else — 조건 분기 (End If 필수)
- 6패턴 5: For 반복문 — i 변수로 행 순회
- 7패턴 6: MsgBox — 메시지 표시, & 로 문자열 연결
- 8패턴 7: Selection.Font / Interior — 서식 변경
- 9패턴 8: ActiveSheet.Name / Worksheets().Select — 시트 조작
- 10패턴 9: Range().Sort Key1:= — VBA 정렬
- 11패턴 10: CurrentRegion — 연속 데이터 영역 자동 인식
퀴즈와 인터랙션으로 더 깊이 학습하세요
play_circle인터랙티브 레슨 시작