Objet Collection

Un objet Collection est un ensemble ordonné d’éléments auquel il est possible de faire référence en tant qu’unité.

Remarques

L’objet Collection constitue un moyen simple pour faire référence à un groupe d’éléments liés en tant qu’objet unique. Il suffit que les éléments, ou membres, d’une collection soient liés par le fait qu’ils existent dans la collection. Il n’est pas nécessaire que les membres d’une collection partagent le même type de données.

Une collection se crée de la même manière que les autres objets. Par exemple :

Dim X As New Collection

Après la création d’une collection, les membres peuvent être ajoutés à l’aide de la méthode Add et supprimés à l’aide de la méthode Remove . Des membres spécifiques peuvent être retournés à partir de la collection à l’aide de la méthode Item , tandis que la collection entière peut être itérée à l’aide de For Each... Instruction suivante .

Exemple

Cet exemple crée un objet Collection (MyClasses), puis crée une boîte de dialogue dans laquelle les utilisateurs peuvent ajouter des objets à la collection.

Pour voir comment cela fonctionne, choisissez la commande Module de classe dans le menu Insertion et déclarez une variable publique appelée InstanceName au niveau du module de Class1 (type PublicInstanceName) pour contenir les noms de chaque instance. Conservez le nom par défaut Class1. Copiez et collez le code suivant dans la section Général d’un autre module, puis démarrez-le avec l’instruction ClassNamer dans une autre procédure.

(Cet exemple fonctionne uniquement avec les applications hôtes qui prennent en charge les classes.)

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

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.