¿Hay alguna manera de escribir una prueba de igualdad para una clase de VBA con miembros privados sin exponer el conocimiento de la existencia de esos miembros privados?

Realizo una buena cantidad de programación de Excel VBA, pero no mucha de ella está orientada a objetos. Aquí hay algo que surge de vez en cuando que me molesta, y me pregunto si hay algo que me falta.

En VBA, digamos que tengo una clase C definida con algunos miembros privados así:

'...

Private hidden1_ As Double
Private hidden2_ As Double

'...

Si VBA funcionó como C ++ u (¿la mayoría?) Otros lenguajes que admiten OOP, podría escribir una función miembro para hacer una prueba de igualdad entre instancias de clase C como esta:

'Error: won't compile!
Public Function equal(cinst As C) As Boolean
    equal = (hidden1_ = cinst.hidden1_ And hidden2_ = cinst.hidden2_)
End Function

Por supuesto, eso no se compilará en VBA porque las funciones de miembro de clase solo pueden acceder a miembros de clase privada de la misma instancia en la que se invocan. Lo mejor que he encontrado para hacer este tipo de cosas es definir dos funciones miembro como esta:

Public Function equalDef(hidden1 As Double, hidden2 As Double) As Boolean
    equalDef = (hidden1_ = hidden1 And hidden2_ = hidden2)
End Function

Public Function equal(cinst As C) As Boolean
    equal = cinst.equalDef(hidden1_, hidden2_)
End Function

Es engorroso y expone el conocimiento de la existencia de miembros de la clase privada, pero al menos evita realmente exponer elvalores de miembros de la clase privada.

¿Es esto lo mejor que puedo hacer?

EDITAR:

Como de costumbre, después de una respuesta, me di cuenta de una mejor manera de formular la pregunta. Se tituló "¿Hay una forma más limpia de escribir una prueba de igualdad para una clase de VBA con miembros privados?" cuando Dick lo respondió.

Respuestas a la pregunta(2)

Su respuesta a la pregunta