Freigeben über


Collection-Objekt

Ein Collection -Objekt ist eine geordnete Gruppe von Elementen, die als Einheit bezeichnet werden kann.

Hinweise

Das Collection-Objekt ist eine gute Möglichkeit, um auf eine Gruppe verwandter Elemente als einzelnes Objekt zu verweisen. Die Elemente – oder Member – einer Auflistung müssen lediglich in der Auflistung enthalten sein und sich nicht in spezieller Weise aufeinander beziehen. Es ist nicht erforderlich, dass Elemente einer Auflistung den gleichen Datentyp aufweisen.

Eine Auflistung kann genauso wie andere Objekte erstellt werden. Zum Beispiel:

Dim X As New Collection

Nachdem eine Sammlung erstellt wurde, können Elemente mithilfe der Add-Methode hinzugefügt und mithilfe der Remove-Methode entfernt werden. Bestimmte Elemente können mithilfe der Item-Methode aus der Auflistung zurückgegeben werden, während die gesamte Auflistung mithilfe von For Each... durchlaufen werden kann. Nächste Anweisung.

Beispiel

In diesem Beispiel wird ein Collection-Objekt (MyClasses) und dann ein Dialogfeld erstellt, in dem Benutzer der Auflistung Objekte hinzufügen können.

Um zu sehen, wie dies funktioniert, wählen Sie im Menü Einfügen den Befehl Klassenmodul aus, und deklarieren Sie eine öffentliche Variable namens InstanceName auf Modulebene von Class1 (Typ PublicInstanceName), um die Namen der einzelnen instance zu enthalten. Behalten Sie den Standardnamen Class1 bei. Kopieren Sie den folgenden Code, fügen Sie ihn in den Abschnitt Allgemein eines anderen Moduls ein, und beginnen Sie ihn dann mit der -Anweisung ClassNamer in einer anderen Prozedur.

(Dieses Beispiel funktioniert nur mit Hostanwendungen, die Klassen unterstützen.)

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

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.