결론 먼저
컴활 1급 실기의 매크로·VBA 영역은 배점이 꽤 있는데 포기하는 사람이 많아 역설적으로 점수 확보 기회예요. Range/Cells/For/If 4가지 기본 패턴만 익히면 기출에 나오는 대부분의 VBA 문제를 풀 수 있습니다. 코딩 경험 전혀 없어도 가능해요.
왜 VBA를 포기하면 안 되나
기타작업 배점은 약 20점. 그중 매크로·VBA가 차트와 함께 큰 비중을 차지해요. 문제는 많은 수험생이 "VBA = 프로그래밍 = 어렵다"는 선입견으로 공부 자체를 안 하는 것.
하지만 시험에 나오는 VBA는 정해진 패턴을 약간 변형한 수준이에요. 실제 프로그래머 수준의 코드를 작성하는 게 아니라, 미리 배운 틀을 적용하는 형태라서 암기 + 패턴 매칭으로 해결됩니다.
2024 개편 이후 VBA 비중이 소폭 올랐어요. 아예 안 보고 가면 합격선(70점) 넘기기 어렵습니다.
VBA 기본 문법 — 딱 4가지
1. 셀 값 읽고 쓰기
Range("A1").Value = 10 ' A1에 10 입력
Cells(1, 1).Value = 10 ' 같은 의미 (행, 열)
x = Range("B2").Value ' B2 값을 x에 저장
핵심: Range("A1") = 문자·숫자로 위치 지정 / Cells(행, 열) = 숫자로만 지정.
Cells(1, 1) = A1, Cells(2, 3) = C2. 행·열 순서 헷갈리지 않게 주의.
2. 변수 선언
Dim i As Integer
Dim name As String
Dim total As Double
Dim 변수명 As 타입 구조. 타입: Integer(정수), String(문자), Double(실수), Boolean(참/거짓).
3. For 반복문
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = i
Next i
해석: i를 1부터 10까지 1씩 증가시키며 A1–A10에 i 값 입력.
' 2씩 증가
For i = 1 To 10 Step 2
...
Next i
' 역순
For i = 10 To 1 Step -1
...
Next i
4. If 조건문
If Cells(1, 1).Value >= 60 Then
Cells(1, 2).Value = "합격"
Else
Cells(1, 2).Value = "불합격"
End If
If / ElseIf / Else / End If 구조.
자주 나오는 매크로 패턴
패턴 1: 조건부 서식 매크로
"60점 이상에 노란색 채우기"
Sub ColorFill()
Dim i As Integer
For i = 2 To 11
If Cells(i, 3).Value >= 60 Then
Cells(i, 3).Interior.Color = vbYellow
End If
Next i
End Sub
핵심 객체: .Interior.Color (배경색), .Font.Color (글자색).
패턴 2: 합계 계산
"A2:A10의 합계를 B1에 입력"
Sub SumRange()
Dim sum As Double
sum = 0
Dim i As Integer
For i = 2 To 10
sum = sum + Cells(i, 1).Value
Next i
Range("B1").Value = sum
End Sub
패턴 3: 정렬 매크로
매크로 기록 방식으로 만들어진 코드.
Range("A1:C10").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlYes
보통 시험에선 이 코드를 주고 "Key1은 어느 열인가?" 같이 읽기 문제로 나옵니다.
패턴 4: 셀 포맷팅
' 굵게 처리
Range("A1:A10").Font.Bold = True
' 글자 색
Range("A1").Font.Color = vbRed
' 배경색
Range("A1").Interior.Color = RGB(255, 200, 200)
프로시저 — Sub vs Function
Sub 프로시저
- 작업 수행 (값 반환 안 함)
Sub 이름() ~ End Sub구조- 매크로 = Sub
Function 프로시저
- 값을 반환
Function 이름() As 반환타입 ~ End Function- 사용자 정의 함수
Function MyAdd(a As Integer, b As Integer) As Integer
MyAdd = a + b
End Function
엑셀 워크시트에서 =MyAdd(3, 5) 처럼 사용 가능.
매크로 보안 설정
- 모든 매크로 사용: 위험, 권장 안 함
- 알림 후 매크로 사용 안 함: 엑셀 기본값
- 서명된 매크로만 사용: 중간 보안
- 모든 매크로 사용 안 함: 가장 안전
시험에선 설정 이름과 의미를 매칭하는 단답 문제 출제.
매크로 실행 방법
- 바로 가기 키 (Ctrl + 지정 키)
- 개발 도구 탭 → 매크로 → 실행
- 버튼(양식 컨트롤)에 매크로 연결
.xlsm 확장자로 저장해야 매크로가 보존돼요. .xlsx로 저장하면 매크로가 삭제됩니다.
자주 하는 실수
1. Cells 인수 순서 혼동
Cells(행, 열). 헷갈리면 Range("A1") 사용이 더 안전.
2. Range("A1")의 따옴표 빠뜨림
문자열이므로 반드시 ""로 감싸기.
3. For 문 Next 뒤 변수 누락
Next 뒤에 변수명 생략해도 되지만, 중첩 반복문에선 명시하는 게 안전.
4. 변수 선언 없이 바로 사용
액세스의 Option Explicit 상태라면 오류. 습관적으로 Dim 선언.
5. .xlsx로 저장 후 매크로 사라짐
시험장에서 꼭 .xlsm로 저장하세요.
시험장에서의 접근법
- VBA 문제는 "읽기"가 많아요 — 주어진 코드 해석 → 선택지 고르기
- 빈칸 채우기는 기본 문법만 생각 — 복잡한 로직 절대 아님
- 모르는 객체 메서드 나오면 일단 넘기기 — 기본 패턴으로 먼저 해결
- 매크로 이름·버튼 위치 조건 준수 — 조건 안 맞추면 감점
- 저장 확장자
.xlsm확인
정리
- 4가지 패턴: Range/Cells, 변수 선언, For, If
- Sub(값 반환 X) vs Function(값 반환 O)
.xlsm확장자로 저장- 기출 코드 10개 반복이 가장 빠른 길
- 완벽 이해 불필요, 패턴 매칭으로 충분