이전 글에서 Sub 프로시저에 대해 알아보았습니다. 이번에는 엑셀의 함수와 같은 Function 프로시저에 대해 알아보겠습니다.
1. Function 프로시저
Function 프로시저는 엑셀의 함수와 같이 계산하고 결괏값을 반환합니다. Function 프로시저를 만드는 이유는 엑셀에서 제공해주는 함수 중 사용자가 원하는 함수가 없을 경우 또는 함수가 있더라고 사용자가 원하는 결과를 얻지 못하는 경우 Function 프로시저를 이용하여 사용자가 직접 계산식을 만드는 경우 사용합니다.
Function 프로시저 사용방법은 다음과 같습니다.
Function 함수명 ( 매개변수 1 As 변수 형식, 매개변수 2 As 변수 형식, ... ) As 데이터 형식
실행문
함수명 = 결과값
End Function
Function 프로시저의 함수명을 정하면서 반환할 결괏값의 데이터 형식을 지정하였습니다. 매개변수는 Function 프로시저에 필요한 인수를 받는 변수이며 함수명 = 결괏값은 지정된 함수 명의 Function 프로시저에 결괏값을 반환하라는 명령입니다.
그리고, Function 프로시저는 반드시 Module 창에 코딩되어야 합니다.
2. 예제로 Function 프로시저 확인해 보기
엑셀에서 VBE 창을 여시고 Module을 생성합니다.
열린 Module 창에 다음과 같이 코딩을 입력합니다.
Function 오차(std As Double, x As Double) As Double
오차 = (x - std) / std * 100
End Function
그리고, 엑셀 시트에 [그림 1]과 같이 작성합니다.
D3 셀에 '=오차(B3,C3)'를 입력합니다.
D3 셀에 입력을 완료하면 오차값이 계산되어 나오는 것을 보실 수 있습니다.
3. 매개변수가 생략되었을 때 Function 프로시저 계산
Function 프로시저에 전달되는 매개변수가 생략되어 전달되었을 때도 Function 프로시저가 계산되어 값을 반환하도록 할 때는 Optional을 이용합니다.
Optional을 사용하여 Function 프로시저를 작성하는 방법은 다음과 같습니다.
① 생략되는 매개변수의 값을 지정할 때
Function 함수명 (매개변수 1 As 변수 형식, Optional 매개변수 2 As 변수 형식 = 초기값) As 데이터 형식
실행문
함수명 = 결괏값
End Function
② 생략되는 매개변수의 값을 지정하지 않을 때
Function 함수명 (매개변수 1 As 변수 형식, Optional 매개변수 2 As variant) As 데이터 형식
If IsMissing ( 매개변수 2 ) = True then 매개변수 2 = 초기값
실행문
함수명 = 결괏값
End Function
'엑셀 > VBA' 카테고리의 다른 글
VBA 내장 함수 - MsgBox 함수 (0) | 2021.09.28 |
---|---|
엑셀 VBA - Function 프로시저 인수 지정 없이 사용 (0) | 2021.09.27 |
엑셀 VBA 반복문 For Each...Next문 사용하기 (0) | 2021.09.25 |
엑셀 VBA Switch 함수 & Select Case에 대해 알아보기 (0) | 2021.09.24 |
엑셀 VBA IF문 다중 조건 처리 & IIF에 대해 알아보기 (0) | 2021.09.24 |