devxlogo

Don’t Use VarType to Test for Objects

Don’t Use VarType to Test for Objects

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.”

devx-admin

Share the Post: