나만의공간

📘 엑셀 고급 강의 13‑4. 사용자 정의 함수(UDF) 기본 작성 실습 본문

Excel/고급

📘 엑셀 고급 강의 13‑4. 사용자 정의 함수(UDF) 기본 작성 실습

밥알이 2025. 8. 7. 06:43

📘 엑셀 고급 강의 13‑4. 사용자 정의 함수(UDF) 기본 작성 실습

이번 소주제에서는 VBA를 활용해 직접 사용자 정의 함수(User‑Defined Function, UDF)를 작성하는 방법을 실습합니다. 엑셀 기본 함수로는 처리하기 어려운 반복 로직이나 특정 조건 계산을 함수 하나로 구현할 수 있어 업무 자동화에 매우 유용합니다.


1. UDF의 개념과 장점

  • ✅ UDF는 Excel 일반 함수처럼 셀에서 바로 사용할 수 있는 사용자가 만든 함수입니다.
  • ✅ 복잡한 계산 로직이나 조건별 처리 등을 함수 하나로 작성해 재사용 가능하게 만듭니다.
  • ✅ 예: 특정 문자열 병합, 조건에 따른 등급 계산, 복잡 수식 단순화 등에 적용 가능합니다.

2. UDF 기본 문법 구조

Function CalcSomething(arg1 As Double, arg2 As Double) As Double
  ' 로직 구현
  CalcSomething = <반환값>
End Function
  • Function / End Function 구조 안에 로직을 작성
  • 인수와 반환 자료형 명시: 예 → (price As Double, rate As Double)
  • Excel 셀에서 =CalcSomething(A2, B2) 형태로 사용 가능합니다.

3. 예제 A – 할인 금액 계산 함수

Function CalcDiscount(price As Double, rate As Double) As Double
  CalcDiscount = price * (1 - rate)
End Function
  • A2 셀에 가격 100000, B2 셀에 할인율 0.1 입력 시, C2 셀에 =CalcDiscount(A2, B2) 입력하면 90000 반환
  • 할인 로직을 함수로 캡슐화하여 수식 단순화 및 재사용 가능

4. 예제 B – 점수 기반 등급 반환 함수

Function GradeChar(score As Integer) As String
  If score >= 90 Then
    GradeChar = "A"
  ElseIf score >= 80 Then
    GradeChar = "B"
  ElseIf score >= 70 Then
    GradeChar = "C"
  Else
    GradeChar = "D"
  End If
End Function
  • C2 셀에 점수 입력 시, D2 셀에 =GradeChar(C2) 입력하면 등급 자동 표시
  • 조건별 문자 반환이 필요한 보고서 요건에 적합

5. 실무 팁 및 주의사항

  • ✅ 모듈 상단에 Option Explicit 선언 → 변수 오타 및 타입 미선언 방지
  • ✅ 각 함수에 주석 사용 (‘Comment’) → 로직 설명 및 유지보수에 유리
  • ✅ 함수 이름은 기능 중심 명명 (예: CalcTax, GetTier) → 명확성 유지
  • ✅ UDF 포함 워크북은 반드시 .xlsm 형식으로 저장해야 함수가 정상 작동합니다

6. 요약 정리

  • ✅ UDF는 반복 계산 및 조건별 로직을 하나의 함수로 정리하여 재사용할 수 있습니다.
  • ✅ VBA 문법(함수 선언, 조건문, 반환값 지정 등)을 익히면 복잡 로직도 간단하게 구현 가능
  • ✅ Option Explicit, 주석 작성, 명확한 함수명 등으로 유지보수성과 안정성을 확보하세요.
Comments