教えてください

uboundを使うと
配列数が0のときにエラーになるので
関数で覆って0でも配列数を返す関数を作ったのですが

Public Function GetArrayCnt(aaa) As Long
On Error GoTo ErrorHandle
GetArrayCnt= UBound(aaa) + 1
Exit Function
ErrorHandle:
GetArrayCnt= 0
Exit Function
End Function

ユーザ定義型の配列変数を渡すとエラーになります
このような関数はつくれないのでしょうか?