To test whether an argument passed to a procedure is an object or something else, use the IsObject function in place of the VarType function. Consider this routine:
Sub TestType(arg As Variant) If VarType(arg) = vbObject Then Print "It's an object" ElseIf VarType(arg) = vbString Then Print "It's a string" End IfEnd Sub
If you pass a control or an object that exposes a default property, the routine incorrectly reports the default property type:
TestType Text1 ' displays "It's a string"
This is the correct way to test for an object:
If IsObject(arg) Then Print "It's an object" ElseIf VarType(arg) = vbString Then Print "It's a string" End If
For more information on this topic, look on VB’s Help file under “VarType.”