Ch.7 실기 실전 연습

실기 — 매크로/VBA 기출 패턴 10선

매크로 기록/실행/단축키 지정을 시험 환경에서 정확히 수행할 수 있다VBA 코드 10가지 핵심 패턴의 실행 결과를 정확히 예측할 수 있다기타 작업 15점 중 매크로/VBA 파트를 확실히 득점할 수 있다

기타 작업 15점: VBA 코드 한 줄이 합격을 가른다

실기 기타 작업에서 매크로/VBA는 매회 출제됩니다. 코드를 직접 작성할 필요는 없지만, 읽고 결과를 맞추는 능력이 필요합니다.

VBA 코드를 처음 보면 외계어처럼 느껴집니다

10가지 패턴만 익히면 어떤 VBA 문제든 풀 수 있습니다


article

핵심 내용

매크로는 반복 작업을 자동화하는 기능입니다. 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:=xlDescending

Range("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번째 행을 의미한다.

check_circle

핵심 정리

  • 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인터랙티브 레슨 시작