Function 프로시저
Function 프로시저는 사용자 정의 함수라고 할 수 있다.
Sub 프로시저와 달리 매개변수를 인수로 받을 수 있고 결과값을 반환한다.
(매개변수 - 프로시저를 호출할 때 해당 프로시저에게 전달하는 값)
기본 구문은 아래와 같다.
Function 함수명 (매개변수1 As 변수형식, 매개변수 2 As 변수형식....)_
As 결과값_데이터형식
'실행명령
함수명 = 결과값
End Function
매개변수의 생략 : Optional 키워드
- 만약 생략할 수 있는 매개변수가 있을 경우 매개변수 앞에 Optional 키워드를 넣는다.
- Optional 키워드는 맨 마지막 매개변수에만 사용할 수 있다.
(Optional 매개변수가 2개 이상이라면 맨 뒤 쪽으로 붙여서 사용한다.
- Optional 매개변수가 생략되었을 때의 기본값을 지정해 줄 수 있다.
Function 함수명 (매개변수1 As 변수형식, Optional 매개변수 2 As 변수형식 = 기본값)_
As 결과값_데이터형식
1 2 3 4 5 6 7 8 9 10 | Function plus(a As Integer, Optional b As Integer = 100) As Integer Dim c As Integer c = a + b plus = c End Function | cs |
전달될 인수의 갯수가 미정일 때
sum함수의 경우 인수로 전달된 모든 값의 합을 반환하는데 인수가 몇개가 될지는 알 수 없다.
이처럼 Function 프로시저에 전달할 인수의 갯수가 미정일 때 동적배열을 매개변수로 지정한다.
Function 함수명 (ParamArray 변수() As Variant) As 결과값_데이터형식
Dim 요소 As Variant
For Each 요소 In 변수
' 함수 명령문
Next
함수명 = 결과값
End Function
1 2 3 4 5 6 7 8 9 10 11 | Function plus2(ParamArray ar() As Variant) As Integer Dim d As Variant For Each d In ar plus2 = plus2 + d Next End Function | cs |
Function 프로시저 호출(사용)
이렇게 정의된 Function 프로시저는 엑셀에서 다른 함수(sum, if 등등)처럼 사용될 수 있고(사용자 정의 함수)
Sub 프로시저의 일부로 사용될 수도 있다.
사용자 정의 함수로 사용될 때는 엑셀에서 다른 함수들처럼 사용하고
=Function함수명(매개변수, 매개변수..)
다른 프로시저에서 호출할 때는 :(콜론)과 =(등호)를 사용해서 매개변수를 전달한다.
함수명(매개변수이름:= 값, 매개변수이름:=값)
'Excel > VBA 공부' 카테고리의 다른 글
얼렁뚱땅 엑셀 VBA] Range 개체 (0) | 2017.05.26 |
---|---|
얼렁뚱땅 엑셀 VBA] InputBox (6) | 2017.05.25 |
얼렁뚱땅 엑셀 VBA] 매개변수의 전달 - ByRef, ByVal (0) | 2017.05.24 |
얼렁뚱땅 엑셀 VBA] 순환문(For ~ Next / For Each ~ Next) (0) | 2017.05.21 |
얼렁뚱땅 엑셀 VBA] 조건문(Select Case문) (0) | 2017.05.20 |
얼렁뚱땅 엑셀 VBA] 조건문(If~Then~Else문 / IIf문) (0) | 2017.05.19 |
얼렁뚱땅 엑셀 VBA] 배열변수, 동적 배열변수 (1) | 2017.05.18 |
얼렁뚱땅 엑셀 VBA] 변수, 상수, 개체변수 (0) | 2017.05.17 |
얼렁뚱땅 엑셀 VBA] 프로시저 (Public / Private 프로시저) (0) | 2017.05.16 |
얼렁뚱땅 엑셀 VBA] With ~ End With 구문 (0) | 2017.05.15 |
댓글