Ever?needed?to?pass?or?not?pass?a?value?to?a?sub?(or?function)?having?an?optional?argument?depending?on?the?business?rules?
I?mean?something?like?this:
Function?MyFunction(ByVal?SomeArg?As?Integer)?As?String
????If?SomeArg??0?Then
????????MyFunction?=?NotMyFunction(SomeArg)?’OK,?we?can?pass?SomeArg
????Else
????????MyFunction?=?NotMyFunction?’We?cannot?pass?it.?NotMyFunction?will?got?it?missing.
????End?If
End?Function
Instead?of?repeating?the?call?to?such?a?function?or?sub,?you?can?pass?it?a?true?missing?value?using?the?function?below:
Public?Function?Missing(Optional?PlaceHolder?As?Variant)?As?Variant
????Missing?=?PlaceHolder
End?Function
Our?example?would?change?to?something?like?this:
Function?MyFunction(ByVal?SomeArg?As?Integer)?As?Integer
Dim?Arg?As?Variant
????If?SomeArg??0?Then?Arg?=?SomeArg?Else?Arg?=?Missing
????MyFunction?=?NotMyFunction(Arg)
End?Function