에너지 관점 스터디:에관스

컴활 1급 · 사용자 정의 함수

컴활 1급 사용자 정의 함수는 코드를 외우기보다 함수명, 인수, 반환값 순서로 쪼개야 덜 멈춥니다

컴활 1급 사용자 정의 함수를 검색하는 사람은 대개 실기 계산작업에서 Function을 열어 놓고 첫 줄부터 손이 멈춥니다. 일반 함수는 어느 정도 외웠는데, VBA 편집기 안에서 직접 함수를 만들라고 하면 함수 문제인지 프로시저 문제인지부터 헷갈리기 쉽습니다.

대한상공회의소 공식 안내 기준으로 컴활 1급 실기는 스프레드시트 실무와 데이터베이스 실무를 보는 컴퓨터 작업형 시험입니다. 그래서 사용자 정의 함수는 긴 문법 공부가 아니라, 제한된 실기 시간 안에서 함수명, 인수, 반환값, 조건, 셀 적용을 같은 순서로 처리하는 연습이 중요합니다.

컴활 1급 사용자 정의 함수 문제를 함수명, 인수, 반환값, 조건, 셀 적용 순서로 정리한 인포그래픽
사용자 정의 함수는 VBA 문법을 한 번에 떠올리기보다 함수명, 인수, 반환값, 조건, 셀 적용 순서로 쪼개야 실기에서 덜 멈춥니다.
작성에관스 컴활 1급 학습팀 발행2026년 5월 25일 수정2026년 5월 25일 주제사용자 정의 함수

핵심 포인트

이 글에서 먼저 챙길 것

  • 사용자 정의 함수는 프로시저처럼 이벤트를 찾기보다, 함수명과 인수부터 확인합니다.
  • 문제 지시문을 함수명, 입력값, 반환값, 조건식, 셀 적용 순서로 표시하면 첫 줄이 훨씬 빨리 잡힙니다.
  • Function 안에서는 마지막에 함수명 = 결과 형태로 반환값을 넣는 흐름을 먼저 떠올리세요.
  • 실전에서는 완성 코드보다 쉬운 계산식, 기본 조건, 셀 적용 검토를 먼저 점수화하는 편이 안정적입니다.

본문

컴활 1급 공부 기준을 더 구체적으로 보기

이 글이 필요한 사람

컴활 1급 함수 공부법은 봤지만 사용자 정의 함수만 나오면 VBA 때문에 따로 막히는 사람에게 맞는 글입니다.

매크로·VBA 입문 글은 자동화와 기본 구조를 맡고, 프로시저 글은 버튼이나 폼의 이벤트 처리 순서를 맡습니다. 이 글은 그중에서도 스프레드시트 계산작업 안에서 Function 형태로 직접 함수를 만드는 문제만 좁게 다룹니다.

사용자 정의 함수가 어려운 이유는 문법보다 역할 혼동입니다

사용자 정의 함수는 VBA를 쓰지만, 목표는 이벤트 처리보다 계산 결과를 돌려주는 것입니다. 그래서 버튼 클릭, 폼 열기, 메시지 출력 같은 프로시저 감각으로 접근하면 첫 기준이 흔들립니다.

문제에서 요구하는 것은 보통 주어진 입력값을 받아 계산하거나 조건에 따라 다른 결과를 반환하는 것입니다. 따라서 처음 볼 것은 어떤 동작이 시작되는지가 아니라, 함수가 어떤 값을 받아 어떤 값을 돌려주는지입니다.

이 차이를 잡으면 사용자 정의 함수는 긴 코드 문제가 아니라 '내가 직접 만드는 엑셀 함수'에 가까워집니다.

1단계는 함수명과 인수를 그대로 옮기는 것입니다

지시문에서 먼저 표시할 것은 함수 이름입니다. 예를 들어 계산할 함수 이름이 제시되어 있다면, 그 이름을 Function 다음에 정확히 놓는 것이 첫 줄의 핵심입니다.

그다음 괄호 안 인수를 봅니다. 인수는 함수가 받을 입력값입니다. 가격, 수량, 등급, 날짜처럼 무엇을 받아 계산해야 하는지 표시하면 본문에서 쓸 재료가 보입니다.

이 단계에서 계산식까지 한 번에 떠올리려 하지 마세요. 함수명과 인수만 정확히 잡아도 사용자 정의 함수의 뼈대가 먼저 생깁니다.

2단계는 반환값을 먼저 정하는 것입니다

Function 문제에서 가장 중요한 문장은 마지막에 어떤 값을 돌려줄지입니다. VBA 사용자 정의 함수에서는 계산한 결과를 함수 이름에 대입하는 흐름으로 생각하면 됩니다.

예를 들어 중간에 result라는 값을 만들었다면, 마지막에는 함수명 = result처럼 결과를 돌려주는 줄이 필요합니다. 이 감각이 없으면 계산은 했는데 셀에 결과가 나오지 않는 실수가 생깁니다.

그래서 연습할 때는 항상 '이 함수는 무엇을 반환하나'를 한 줄로 먼저 적고 시작하세요.

3단계는 조건식을 마지막에 붙이는 것입니다

사용자 정의 함수 지시문에는 등급, 구간, 특정 글자 포함 여부처럼 조건이 붙는 경우가 많습니다. 이때 바로 If부터 쓰면 함수명, 인수, 반환값이 흐려질 수 있습니다.

먼저 조건이 없다고 가정했을 때의 기본 계산을 생각하고, 그다음 어떤 경우에만 결과가 달라지는지 붙이는 편이 안정적입니다.

조건이 여러 개라면 보기 좋게 나누기보다, 문제에서 요구하는 우선순서가 무엇인지 먼저 표시하세요. 조건 순서가 틀리면 문법은 맞아도 결과가 달라질 수 있습니다.

4단계는 셀에서 호출되는 모양까지 확인하는 것입니다

사용자 정의 함수는 코드 창에서 끝나는 문제가 아닙니다. 결국 시트의 셀에서 함수가 호출되어 결과가 나와야 합니다.

그래서 코드 작성 뒤에는 함수 이름이 지시문과 같은지, 인수 개수와 순서가 맞는지, 셀에서 넣은 값이 Function의 인수와 연결되는지 확인해야 합니다.

함수명 철자, 괄호 안 인수 순서, 결과 셀 위치는 시험장에서 매우 현실적인 실수 지점입니다. 마지막 검토는 멋진 문법보다 이 세 가지를 먼저 보세요.

프로시저와 사용자 정의 함수는 시작 질문이 다릅니다

프로시저는 '어떤 이벤트가 일어나면 무엇을 실행하는가'를 묻습니다. 반면 사용자 정의 함수는 '어떤 입력값을 받아 어떤 결과를 돌려주는가'를 묻습니다.

둘 다 VBA를 쓰기 때문에 같은 파트처럼 느껴지지만, 문제를 읽는 질문이 다릅니다. 버튼, 폼, 메시지, 초기화가 중심이면 프로시저 쪽이고, 함수명, 인수, 계산 결과가 중심이면 사용자 정의 함수 쪽으로 보면 됩니다.

이 구분이 되면 VBA 전체를 한 덩어리로 두려워하지 않고, 문제 유형에 맞게 첫 줄을 잡을 수 있습니다.

실전에서는 쉬운 계산부터 함수 틀에 넣으세요

사용자 정의 함수 문제를 완벽하게 한 번에 만들려고 하면 조건 하나에서 시간이 묶입니다. 먼저 Function 줄, 인수, 기본 계산, 반환값 줄처럼 쉬운 뼈대부터 작성하세요.

그다음 조건이 붙는 부분을 보강합니다. 조건이 바로 안 보이면 표시하고 넘어가되, 함수 틀과 쉬운 계산은 남겨 두는 편이 실전 점수화에 가깝습니다.

실기 시간 안에서는 어려운 한 줄을 오래 붙잡는 것보다, 작성 가능한 줄을 먼저 확정하고 결과가 나오는지 확인하는 쪽이 더 실용적입니다.

4일 연습 루틴은 이렇게 잡으면 됩니다

1일차에는 Function 이름과 인수만 보고 함수 틀을 만드는 연습을 합니다. 2일차에는 계산 결과를 함수명에 돌려주는 반환값 줄을 반복합니다.

3일차에는 If 조건이 들어간 문제만 따로 모아 조건 순서와 기본값을 확인합니다. 4일차에는 실제 시트에서 함수를 호출해 인수 순서와 결과 셀을 검토합니다.

처음부터 다양한 예제를 많이 푸는 것보다, 매번 같은 순서로 함수 뼈대가 잡히는지 보는 편이 더 빠르게 안정됩니다.

시험 직전 체크리스트는 짧게 끝내세요

시험 직전에는 새 문법을 늘리기보다 함수명, 인수, 반환값, 조건, 셀 적용만 확인합니다.

문제를 열면 함수 이름을 찾고, 인수 개수를 세고, 반환값을 생각하고, 조건식을 붙이고, 셀에서 호출 결과를 확인하는 순서로 반복하세요.

사용자 정의 함수는 외울 것이 끝없이 늘어나는 파트가 아닙니다. 매번 같은 질문으로 지시문을 자르면, VBA 화면이 떠도 첫 줄에서 멈추는 시간이 줄어듭니다.

FAQ

자주 묻는 질문

컴활 1급 사용자 정의 함수는 프로시저와 같은 건가요?

둘 다 VBA를 쓰지만 시작 질문이 다릅니다. 프로시저는 이벤트가 일어났을 때 실행할 동작을 쓰는 문제이고, 사용자 정의 함수는 입력값을 받아 계산 결과를 반환하는 문제로 보는 편이 좋습니다.

사용자 정의 함수 문제에서 가장 먼저 봐야 할 것은 무엇인가요?

함수명과 인수입니다. 어떤 이름의 함수를 만들고, 괄호 안에서 어떤 입력값을 받을지 먼저 잡아야 계산식과 조건식이 덜 흔들립니다.

Function 안에서 계산했는데 결과가 안 나오면 무엇을 확인해야 하나요?

반환값을 확인해야 합니다. 계산한 결과가 함수 이름에 대입되는 흐름인지, 셀에서 호출한 함수명과 인수 순서가 맞는지 먼저 보세요.

사용자 정의 함수는 컴활 1급 함수 공부법 글과 무엇이 다른가요?

함수 공부법 글은 엑셀 기본 함수와 찾기·논리 함수 같은 전체 루틴을 다룹니다. 이 글은 VBA 편집기에서 직접 Function을 만드는 사용자 정의 함수 문제만 따로 다룹니다.