Hola, pablorobayo, tenía el mismo problema que tú y desarrollé una dll muy similar a la del código que comentas abajo. El problema que tenía era que no podía usar for each con dicha dll. He bajado el código del enlace que pusiste y me pasa exactamente lo mismo.
El código es este:
Sub Main()
Dim MiCol As New CHive
'Dim MiCol As New Collection
Dim Campo As New Collection
'MiCol.AllowDuplicate = False
MiCol.Add "Valor Tabla1", "NombreTabla1"
MiCol.Add "Valor Tabla2", "NombreTabla2"
MiCol.Add "Valor Tabla3", "NombreTabla3"
MiCol.Remove "NombreTabla3"
'MiCol.VerItems
For Each Campo In MiCol 'aquí falla diciendo q el objeto no admite propiedad o método
MsgBox Campo
Next
For I = 1 To MiCol.Count 'esto sí funciona
'MsgBox MiCol.Item(I)
Next
End Sub
Haciéndolo con el segundo bucle sí funciona, pero si hubiera más colecciones dentro de la colección, no puedo obtener dichos valores, ya que tengo que migrar unas funciones de un compañero, que metía como elementos de una colección otra colección y dentro de esta un array de 4 elementos (Crea una colección con las tablas-campos y 4 propiedades de cada campo para realizar una exportación de datos). Como véis, es para nota
El problema es que ni con la rutina que he hecho yo no con la del enlace, ni con el objeto dictionary he logrado simularlo para incluirlo en ASP. El problema de hacerlo como dice AntofagastaCL es que perdería el control de los errores por lo que generar una dll que haga todo el trabajo.
Os pongo un enlace para bajar el codigo por si alguien puede y quiere revisarlo>
http://personales.ya.com/javiercasti...olecciones.zip
¿Se os ocurre algo?
Gracias y saludos