Objeto Collection
Un objeto Collection es un conjunto de elementos ordenados al que se puede hacer referencia como una unidad.
Comentarios
El objeto Collection ofrece una forma simple de hacer referencia a un grupo relacionado de elementos como objeto simple. Los elementos o integrantes de una colección solo necesitan estar relacionados por el hecho de que existen en la colección. Los miembros de una colección no necesitan compartir el mismo tipo de datos.
Las colecciones pueden crearse del mismo modo que el resto de objetos. Por ejemplo:
Dim X As New Collection
Una vez creada una colección, los miembros se pueden agregar mediante el método Add y quitarse mediante el método Remove . Se pueden devolver miembros específicos de la colección mediante el método Item , mientras que toda la colección se puede iterando mediante for each... Siguiente instrucción.
Ejemplo
En este ejemplo se crea un objeto Collection (MyClasses
) y, a continuación, se crea un cuadro de diálogo en el que los usuarios pueden agregar objetos a la colección.
Para ver cómo funciona, elija el comando Módulo de clase en el menú Insertar y declare una variable pública llamada InstanceName
en el nivel de módulo de Class1 (tipo PublicInstanceName
) para contener los nombres de cada instancia. Deje el nombre predeterminado como Class1. Copie y pegue el código siguiente en la sección General de otro módulo e inícielo con la instrucción ClassNamer
en otro procedimiento.
(Este ejemplo solo funciona con aplicaciones host que admitan clases.)
Sub ClassNamer()
Dim MyClasses As New Collection ' Create a Collection object.
Dim Num ' Counter for individualizing keys.
Dim Msg As String ' Variable to hold prompt string.
Dim TheName, MyObject, NameList ' Variants to hold information.
Do
Dim Inst As New Class1 ' Create a new instance of Class1.
Num = Num + 1 ' Increment Num, then get a name.
Msg = "Please enter a name for this object." & vbNewLine _
& "Press Cancel to see names in collection."
TheName = InputBox(Msg, "Name the Collection Items")
Inst.InstanceName = TheName ' Put name in object instance.
' If user entered name, add it to the collection.
If Inst.InstanceName <> "" Then
' Add the named object to the collection.
MyClasses.Add item := Inst, key := CStr(Num)
End If
' Clear the current reference in preparation for next one.
Set Inst = Nothing
Loop Until TheName = ""
For Each MyObject In MyClasses ' Create list of names.
NameList = NameList & MyObject.InstanceName & vbNewLine
Next MyObject
' Display the list of names in a message box.
MsgBox NameList, , "Instance Names In MyClasses Collection"
For Num = 1 To MyClasses.Count ' Remove name from the collection.
MyClasses.Remove 1 ' Since collections are reindexed automatically, remove the first member on each iteration.
Next
End Sub
Vea también
- Propiedad Count
- Objetos (Visual Basic para Aplicaciones)
- Referencia de la biblioteca de objetos de Office (miembros, propiedades, métodos)
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.