[VBA] 사용자 정의 함수 만들기 / Add-in으로 추가하기
#VBA #사용자정의함수 #Add-in추가
많은 엑셀 사용자들은 내장 함수만으로는 원하는 결과를 얻기 어려울 때가 있습니다. 이럴 때 사용자 정의 함수(User-Defined Function, UDF)을 만들어서 필요한 작업을 수행할 수 있습니다. 이번 글에서는 엑셀 VBA를 사용하여 사용자 정의 함수를 만드는 방법과 이를 Add-in으로 추가하는 방법을 알아보겠습니다.
1. VBA 코드
사용자 정의 함수를 만들려면 VBA 코드 에디터를 사용해야 합니다. 아래는 원통의 부피를 계산하는 사용자 정의 함수의 코드 예시입니다.
1
2
3
4
5
6
7
|
Function CylVol(r As Double, h As Double) As Double
Dim pi As Double
pi = 4 * Atn(1)
CylVol = pi * r ^ 2 * h
End Function
|
cs |
2. 코드 해석
1. Function CylVol(r As Double, h As Double) As Double
- 사용자 정의 함수 CylVol을 정의.
- CylVol은 함수의 이름. 엑셀 워크시트에서 이 이름을 사용하여 함수를 호출.
- (r As Double, h As Double)는 함수에 전달되는 매개변수. 여기서 r은 반지름, h는 높이입니다.
- 각 매개변수와 사용자 정의 함수의 타입을 여기서 명시해야함
2. Dim pi As Double
- 사용자 정의 함수 CylVol을 계산하기 위한 변수 pi를 선언
- 해당 변수는 사용자 정의 함수의 매개변수가 아니므로 프로시저 내에서 선언함
3. pi = 4 * Atn(1)
- 아크탄젠트 함수 'Atn'을 사용하여 원주율을 근사적으로 계산
4. CylVol = pi * r ^ 2 * h
- 원통의 부피를 계산하는 수식을 이용하여 함수가 반환할 값을 계산하고 변수 CylVol에 할당
3. 엑셀 내 사용
위 코드를 작성하면 아래와 같이 엑셀 내에서 내장함수처럼 사용 가능합니다.
4. 사용자 정의 함수 Add-in으로 추가하기
위의 방법은 특정 엑셀 파일에서만 사용자 정의 함수를 이용할 수 있습니다. 하지만 함수를 여러 엑셀 파일에서 공통적으로 사용하고 싶다면, 함수를 Add-in으로 저장하는 방법을 사용할 수 있습니다.
1. VBA 코드 에디터에서 모듈 작성: 위와 같이 함수 코드를 작성한 후 모듈에 저장합니다.
2. Add-in으로 저장: 엑셀메뉴 "파일" > "다른 이름으로 저장" 을 선택하고 파일 형식을 "Excel 추가 기능"으로 변경한 후 저장합니다. (참고로 엑셀의 Add-in 기본 경로는 C:\Users\사용자이름\AppData\Roaming\Microsoft\AddIns)
3. Excel 옵션에서 추가 기능 추가: 엑셀메뉴 "파일" > "옵션" > "추가 기능" > "관리" 옆의 이동을 클릭 후, 방금 저장한 Add-in 파일을 추가하면 됩니다.