본문 바로가기

엑셀/VBA

엑셀 VBA - Function 프로시저

반응형

이전 글에서 Sub 프로시저에 대해 알아보았습니다. 이번에는 엑셀의 함수와 같은 Function 프로시저에 대해 알아보겠습니다.

 

엑셀 VBA - Sub 프로시저

 

엑셀 VBA - Sub 프로시저

엑셀 VBA에서 매크로를 작성할 때 Sub 프로시저를 생성하여 코딩합니다. 이 Sub 프로시저는 VBA 프로시저 중 하나이며 그 외에 이벤트 프로시저, Function 프로시저, Property 프로시저가 있습니다. Functio

mr-johndoe.tistory.com

 

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]과 같이 작성합니다.

 

시트_작성_내용
[그림 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

 

반응형