You supplied an object that was not a Visual Basic safeArray, when one was expected.
VBArrays are read-only, and cannot be created directly. The safeArray argument is a VBArray value, and must have obtained a VBArray value before being passed to the VBArray constructor. This can only be done by retrieving the value from an existing ActiveX or other object.
To correct this error
Ensure you pass only VBArray objects to the VBArray constructor.