>>874
他にスマートなやり方があるのかもしれないけど、力ずくでやるなら

Function ubound_ex(aaa, Optional bbb) As Long
  On Error GoTo err_ubound_ex
  ubound_ex = UBound(aaa, IIf(IsMissing(bbb), 1, bbb))
  Exit Function
err_ubound_ex:
  ubound_ex = 0
End Function

こんな感じかな?
ubound_ex(varbane()) とすれば、
要素数が与えられていない時は0が返ってくると思う。