Function elementExists(myCollection As Collection, myName As String) As
Boolean
Dim vArr as Variant
On Error Resume Next
vArr = TypeName(myCollection(myName))
elementExists = (VarType(vArr) < vbEmpty)
End Function
works with both and doesn't use the undocumented VarPtr.
--
Regards,
Tom Ogilvy
"keepITcool" wrote in message
ft.com...
use the VarPtr method in my example.
afaik that works in all cases.
--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam
Tom Ogilvy wrote :
OK, here is a better example:
Sub ABCD()
Dim myCollection As New Collection
Dim vArr(1 To 10) As String
Dim sStr As String, sSTr1 As String
For i = 1 To 10
sStr = ""
sSTr1 = ""
For j = 1 To 4
sStr = sStr & Chr(Int(Rnd() * 26 + 65))
sSTr1 = sSTr1 & Chr(Int(Rnd() * 26 + 65))
Next
myCollection.Add sStr, sStr
If Rnd() < 0.5 Then
vArr(i) = sStr
Else
vArr(i) = sSTr1
End If
Next
For i = 1 To 10
Debug.Print i, vArr(i), elementExists(myCollection, vArr(i))
Next
End Sub
Function elementExists(myCollection As Collection, myName As String)
As Boolean
On Error Resume Next
elementExists = (myName = myCollection(myName))
End Function
of course this doesn't do objects, but string seemed to be the type
anyway.