2026 컴활 1급 필기 2과목 7장 | 매크로·VBA·사용자 정의 함수 — 핵심 이론

데이터위자드 ·

2026 컴활 1급 필기 2과목 7장 | 매크로·VBA·사용자 정의 함수 — 핵심 이론

필기 · 핵심 이론

컴활 1급에서는 매크로 기록에 더해 VBA의 객체·프로시저·변수·조건·반복을 읽고 작성하는 능력이 필요합니다. 셀을 선택하는 동작과 값을 대입하는 동작을 구분하고, 사용자 정의 함수가 무엇을 반환하는지 확인합니다.

이번 절에서 익힐 내용

객체·속성·메서드 · 변수와 자료형 · Sub와 Function · 조건과 반복 · 이벤트·저장·보안

1. 객체·속성·메서드

객체는 Workbook·Worksheet·Range 같은 대상, 속성은 Value·Name 같은 상태, 메서드는 ClearContents 같은 동작입니다. Range("A1").Value=10은 셀 값의 대입이고 Range("A1").Select는 선택 동작입니다.

활성 통합문서·시트에 의존하면 다른 시트에서 엉뚱한 값이 바뀔 수 있습니다. Worksheets("실습").Range처럼 대상을 한정하면 코드가 분명해집니다.

핵심 기준

Value 대입과 Select 선택은 다른 동작이다.

예제로 적용하기

실습 시트 A1에 10을 쓰는 표현은?

풀이와 판단 과정

결론: Worksheets("실습").Range("A1").Value = 10

대상 시트와 셀을 한정한 뒤 Value 속성에 대입합니다.

2. 변수와 자료형

Dim으로 변수를 선언하고 용도에 맞는 자료형을 지정합니다. 행 번호를 다룰 때 Long을 검토하고 Option Explicit로 선언 누락을 찾을 수 있습니다. Variant는 유연하지만 자료형 혼동을 주의합니다.

여러 변수를 한 문장으로 선언할 때 각 변수에 자료형이 적용되는지 확인합니다. Dim a,b As Long에서 a와b가 모두 Long이라고 단정하지 마세요.

핵심 기준

Option Explicit는 변수 선언 누락을 찾는 데 도움이 된다.

예제로 적용하기

Dim a, b As Long에서 명시적으로 Long인 변수는?

풀이와 판단 과정

결론: b

VBA에서는 각 변수의 As 형식을 따로 지정해야 하며 a는 기본적으로 Variant입니다.

3. Sub와 Function

Sub는 작업 절차, Function은 반환값을 갖는 함수입니다. VBA Function에서는 함수 이름에 값을 대입해 반환할 수 있습니다. 워크시트에서 사용할 사용자 정의 함수를 표준 모듈에 작성하는 기본 구조를 익힙니다.

함수는 입력과 반환을 명확히 합니다. 계산용 UDF에서 임의로 다른 셀을 수정하는 설계와 단순 값을 반환하는 목적을 혼동하지 않습니다.

핵심 기준

Function은 함수 이름에 값을 대입하여 반환할 수 있다.

예제로 적용하기

Function 두배(x As Double) As Double 안의 반환 대입은?

풀이와 판단 과정

결론: 두배 = x * 2

VBA의 함수 이름 두배에 계산값을 대입해 반환합니다.

4. 조건과 반복

If·ElseIf·Else, For·Next, Do·Loop로 흐름을 제어합니다. For i=2 To 6은 끝값 6을 포함해 5회입니다. 조건의 순서와 반복 종료 조건을 확인해 누락·무한 반복을 막습니다.

Cells(행,열)에서 행·열 위치를 반대로 쓰지 마세요. 값 대입은 =를 쓰지만 조건식 안에서는 같은 기호가 비교 의미를 가집니다.

핵심 기준

For의 시작과 끝 포함 여부를 확인한다.

예제로 적용하기

For i=2 To 6의 i 값은?

풀이와 판단 과정

결론: 2,3,4,5,6

기본 Step1로 시작 2와끝 6을 모두 포함합니다.

5. 이벤트·저장·보안

버튼 클릭이나 폼 이벤트는 해당 이벤트 프로시저와 연결해야 실행됩니다. 매크로를 보존하려면 XLSM 등 지원 형식으로 저장합니다. XLSX로 저장하면 VBA를 보존할 수 없습니다.

다운로드 파일의 매크로는 내용을 확인한 뒤 신뢰할 수 있는 환경에서 사용합니다. 보안을 무조건 해제하는 방식이 아니라 코드와 출처를 검토하는 절차를 익힙니다.

핵심 기준

VBA를 보존할 통합문서는 매크로 지원 형식으로 저장한다.

예제로 적용하기

VBA를 작성한 통합문서를 저장할 형식은?

풀이와 판단 과정

결론: XLSM

XLSM은 매크로 지원 통합문서 형식입니다. CSV·TXT에는 VBA를 보존할 수 없습니다.

한눈에 비교하기

구분역할예
객체대상Range
속성상태Value
메서드동작ClearContents
Function값 반환함수명=계산값
이벤트동작 연결CommandButton_Click

순서대로 풀어 보는 예제

A2:A6에 10,20,30,40,50이 있고 B열에두배 결과를 넣는다면 i=2~6을 반복하며 Cells(i,2).Value=Cells(i,1).Value*2를 수행합니다. 기대 결과는 20,40,60,80,100입니다.

코드를 표준 모듈에 두고 대상 워크시트를 한정합니다. 처음과끝 행을 확인한 뒤 XLSM으로 저장하고 다시 열어 코드와 값이 남아 있는지 점검합니다.

Function 두배(ByVal x As Double) As Double
    두배 = x * 2
End Function

Sub 두배기록()
    Dim i As Long
    For i = 2 To 6
        Worksheets("실습").Cells(i, 2).Value = _
            Worksheets("실습").Cells(i, 1).Value * 2
    Next i
End Sub

헷갈리는 문장 바로잡기

객체·속성·메서드

잘못된 판단 Select는 항상 값을 10으로 바꾼다.

올바른 판단: Value 대입과 Select 선택은 다른 동작이다.

변수와 자료형

잘못된 판단 Dim a,b As Long이면 a도 반드시 Long이다.

올바른 판단: Option Explicit는 변수 선언 누락을 찾는 데 도움이 된다.

Sub와 Function

잘못된 판단 Function에는 반환값이 없다.

올바른 판단: Function은 함수 이름에 값을 대입하여 반환할 수 있다.

조건과 반복

잘못된 판단 For i=2 To 6은 4회다.

올바른 판단: For의 시작과 끝 포함 여부를 확인한다.

이벤트·저장·보안

잘못된 판단 XLSX는 모든 VBA를 보존한다.

올바른 판단: VBA를 보존할 통합문서는 매크로 지원 형식으로 저장한다.

이론을 정리했다면 같은 절의 객관식 문제에서 조건과 예외를 확인하세요. 정답을 고른 뒤에는 틀린 선택지가 왜 성립하지 않는지도 설명해 보세요.

핵심 개념 확인 — 객관식 5문제

설명을 읽은 뒤 아래 다섯 문항을 풀어 보세요. 정답을 고르고 틀린 선택지의 오류도 설명할 수 있으면 이 단원의 기준을 이해한 것입니다.

문제 1

매크로·VBA·사용자 정의 함수에서 객체·속성·메서드에 대한 설명으로 옳은 것은?

  1. ① Value 대입과 Select 선택은 다른 동작이다.
  2. ② 객체를 한정하면 어느 시트인지 더 모호해진다.
  3. ③ ClearContents는 시트 자체 삭제다.
  4. ④ Select는 항상 값을 10으로 바꾼다.
정답과 해설 보기

정답 ①

객체는 Workbook·Worksheet·Range 같은 대상, 속성은 Value·Name 같은 상태, 메서드는 ClearContents 같은 동작입니다. Range("A1").Value=10은 셀 값의 대입이고 Range("A1").Select는 선택 동작입니다. 활성 통합문서·시트에 의존하면 다른 시트에서 엉뚱한 값이 바뀔 수 있습니다. Worksheets("실습").Range처럼 대상을 한정하면 코드가 분명해집니다.

기억할 핵심

Value 대입과 Select 선택은 다른 동작이다.

문제 2

매크로·VBA·사용자 정의 함수에서 변수와 자료형에 대한 설명으로 옳은 것은?

  1. ① Dim a,b As Long이면 a도 반드시 Long이다.
  2. ② Option Explicit는 변수 선언 누락을 찾는 데 도움이 된다.
  3. ③ 자료형은 계산과 무관하다.
  4. ④ 변수는 값이 바뀔 수 없다.
정답과 해설 보기

정답 ②

Dim으로 변수를 선언하고 용도에 맞는 자료형을 지정합니다. 행 번호를 다룰 때 Long을 검토하고 Option Explicit로 선언 누락을 찾을 수 있습니다. Variant는 유연하지만 자료형 혼동을 주의합니다. 여러 변수를 한 문장으로 선언할 때 각 변수에 자료형이 적용되는지 확인합니다. Dim a,b As Long에서 a와b가 모두 Long이라고 단정하지 마세요.

기억할 핵심

Option Explicit는 변수 선언 누락을 찾는 데 도움이 된다.

문제 3

매크로·VBA·사용자 정의 함수에서 Sub와 Function에 대한 설명으로 옳은 것은?

  1. ① Function에는 반환값이 없다.
  2. ② 표준 모듈에는 어떤 함수도 쓸 수 없다.
  3. ③ Sub는 반드시 셀 수식으로 직접 호출한다.
  4. ④ Function은 함수 이름에 값을 대입하여 반환할 수 있다.
정답과 해설 보기

정답 ④

Sub는 작업 절차, Function은 반환값을 갖는 함수입니다. VBA Function에서는 함수 이름에 값을 대입해 반환할 수 있습니다. 워크시트에서 사용할 사용자 정의 함수를 표준 모듈에 작성하는 기본 구조를 익힙니다. 함수는 입력과 반환을 명확히 합니다. 계산용 UDF에서 임의로 다른 셀을 수정하는 설계와 단순 값을 반환하는 목적을 혼동하지 않습니다.

기억할 핵심

Function은 함수 이름에 값을 대입하여 반환할 수 있다.

문제 4

매크로·VBA·사용자 정의 함수에서 조건과 반복에 대한 설명으로 옳은 것은?

  1. ① Cells(행,열)의 첫 인수는 열이다.
  2. ② ElseIf는 위 조건이 참이어도 언제나 모두 수행된다.
  3. ③ For i=2 To 6은 4회다.
  4. ④ For의 시작과 끝 포함 여부를 확인한다.
정답과 해설 보기

정답 ④

If·ElseIf·Else, For·Next, Do·Loop로 흐름을 제어합니다. For i=2 To 6은 끝값 6을 포함해 5회입니다. 조건의 순서와 반복 종료 조건을 확인해 누락·무한 반복을 막습니다. Cells(행,열)에서 행·열 위치를 반대로 쓰지 마세요. 값 대입은 =를 쓰지만 조건식 안에서는 같은 기호가 비교 의미를 가집니다.

기억할 핵심

For의 시작과 끝 포함 여부를 확인한다.

문제 5

매크로·VBA·사용자 정의 함수에서 이벤트·저장·보안에 대한 설명으로 옳은 것은?

  1. ① 버튼 이름만 같으면 어떤 코드도 자동 연결된다.
  2. ② XLSX는 모든 VBA를 보존한다.
  3. ③ VBA를 보존할 통합문서는 매크로 지원 형식으로 저장한다.
  4. ④ 모든 매크로 보안은 무조건 해제한다.
정답과 해설 보기

정답 ③

버튼 클릭이나 폼 이벤트는 해당 이벤트 프로시저와 연결해야 실행됩니다. 매크로를 보존하려면 XLSM 등 지원 형식으로 저장합니다. XLSX로 저장하면 VBA를 보존할 수 없습니다. 다운로드 파일의 매크로는 내용을 확인한 뒤 신뢰할 수 있는 환경에서 사용합니다. 보안을 무조건 해제하는 방식이 아니라 코드와 출처를 검토하는 절차를 익힙니다.

기억할 핵심

VBA를 보존할 통합문서는 매크로 지원 형식으로 저장한다.

범위 확인

2026년 학습 범위를 기준으로 구성했습니다. 시험 시행기관의 자격 안내·출제 기준에서 과목과 변경 공지를 확인할 수 있습니다.

이 단원의 객관식 문제 풀기

이전 · 데이터 분석과 가상 분석

다음 · 데이터베이스 개요와 관계형 모델

컴활 1급 전체 목차

과목별 이론

단원별 객관식

실습

필기 모의고사

실기 모의고사

스터디클럽의 다른 강의 보기