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 . Los miembros específicos se pueden devolver 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

Consulte también

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.