1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
Sub ClassNamer()
Dim MyClasses As New Collection ' Crée un objet Collection.
Dim Num ' Compteur permettant d'individualiser les clés.
Dim Msg As String ' Variable devant contenir la chaîne d'invite.
Dim TheName, MyObject, NameList ' Variants devant contenir les 'données.
Do
Dim Inst As New Class1 ' Crée une nouvelle instance de Class1.
Num = Num + 1 ' Incrémente d'une unité la valeur de Num, puis
' obtient un nom.
Msg = "Veuillez affecter un nom à cet objet." & Chr(13) _
& "Appuyez sur Annuler pour afficher les noms présents _
& "dans la collection."
TheName = InputBox(Msg, "Nommez les éléments de Collection")
Inst.InstanceName = TheName ' Place le nom dans l'instance de
' l'objet.
' Si l'utilisateur a saisi un nom, ajoute celui-ci à la
' collection.
If Inst.InstanceName <> "" Then
' Ajoute l'objet nommé à la collection.
MyClasses.Add item := Inst, key := CStr(Num)
End If
' Efface la référence en cours en prévision de la suivante.
Set Inst = Nothing
Loop Until TheName = ""
For Each MyObject In MyClasses ' Crée une liste des noms.
NameList = NameList & MyObject.InstanceName & Chr (13)
Next MyObject
' Affiche la liste des noms dans une zone de message.
MsgBox NameList, , "Noms des instances présentes dans la _
& "collection MyClasses"
For Num = 1 To MyClasses.Count ' Supprime le nom de la collection.
MyClasses.Remove 1 ' Puisque les collections sont ' réindexées automatiquement,
' supprime le premier membre à
Next ' chaque itération.
End Sub |
Partager