Function Procedure - Heeyoung-Ahn/Excel_VBA GitHub Wiki
Function Procedure
- 프로시저 내 코드를 실행하고 결과값을 반환
(참조) Sub Procedure: 프로시저의 코드를 실행
- 프로시저의 구문에 Function Procedure 이름으로 값을 반환하는 코드가 포함되어 있어야 함
- Function Procedure는 워크시트 또는 다른 프로시저에서 사용할 수 있음
- 생략가능한 인수는 Optional로 선언하며 생략할 경우의 기본값을 지정해야 함
- ByVal vs. ByRef
- Sample
Option Explicit
Function listCustomer(rngDB As Range, Optional lngAmt As Long = 100) As String
Dim strCustomer As String
Dim rng As Range
Application.Volatile False
For Each rng In rngDB
If rng.Value >= lngAmt Then
strCustomer = strCustomer & rng.Offset(0, -1).Value & ", "
End If
Next rng
If Len(strCustomer) > 0 Then
listCustomer = Left(strCustomer, Len(strCustomer) - 2)
Else
listCustomer = vbNullString
End If
End Function
Sub callFunctionTest(rngA As Range, lngA As Long)
MsgBox listCustomer(rngA, lngA)
End Sub
Sub callSubTest()
Call callFunctionTest(Range(“B2”, Cells(Rows.Count, 2).End(xlUp)), 100)
End Sub