프로젝트 및 실습/VBA

[VBA] Optional Arguments

jooona 2022. 8. 2. 22:33
반응형

VBA에서는 Optional Arguments를 사용할 수 있습니다.

 

Optional Arguments란 Sub 또는 Function을 호출할 때 특정 Argument를 보낼 수도, 보내지 않을 수도 있게 구현하는 것을 말합니다.

 

예시를 들어보겠습니다.

 

Sub Order(menu As String, Optional num As Integer)

    If IsMissing(num) Then
        num = 1
    End If
    
    MsgBox "Menu: " & menu & "  Num: " & num
    
End Sub

 

주문한 음식을 출력하는 코드입니다. Parameter로 Menu의 이름을 String으로, 수량을 Integer 값으로 Optional 하게  받아옵니다.

 

혹시 Optional 한 값인 num이 비어있다면, IsMissing() 함수로 이를 체크해 원하는 대로 처리해 줄 수 있습니다. 저는 num에 값이 없다면 그냥 1을 넣어주도록 구현했습니다.

 

IsMissing() 함수를 사용하는 것이 귀찮다면 다음과 같이 기본 값을 지정해 줄 수도 있습니다.

 

Sub Order(menu As String, Optional num As Integer = 1)

    MsgBox "Menu: " & menu & "  Num: " & num
    
End Sub

 

만약  Optional한 Parameter에 대한 처리를 해주지 않으면, 데이터 타입에 대한 기본 값으로 자동으로 채워 넣어집니다. Integer 데이터 타입이라면 0, Boolean 데이터 타입이라면 False가 자동으로 들어갑니다.  

 

 

 

num 값은 Optional한 Parameter이기 때문에 아래의 두 호출법 모두 오류 없이 잘 실행됩니다. 물론 결과도 같습니다.

 

Sub Make_Order()
    
    Call Order("Pizza")
    Call Order("Pizza", 1)
       
End Sub

    

반응형