'Attribute VB_Name = "CollectionSample1"
'collection doppelte schluessel'
Option Explicit
' ---------------------------------------------------------
' Sub: CollectionSample1
' Eingestellt von: Andre Schau
' Datum: 5. Juno 2006
' Kommentar: Beispiel fuer Collection ohne
' Duplikate
' Parameter:
' Rückgabe:
' Hinweis: Zeilennummern für Fehlerausgabe müssen Zeile
' im Modul entsprechen! Dadurch ist eine Ausgabe
' der codezeile des Fehleres moeglich.
' ---------------------------------------------------------
Public Sub CollectionSample1()
'collection ohne Duplikate
'Autor Andre Schau 05.07.2006
'Zeilennummern für Fehlerausgabe, müssen Zeile im Modul entsprechen!
'Declarationen
Dim c As New Collection
'Integervariablen
Dim iCounter%
'Collection füllen, bei Duplikat errorhandler
'erster Eintrag = Wert, zweiter Eintrag = Index/Schlüssel
26 On Error GoTo errorhandler
'Anmerkung: ohne Duplikate erfordert Wert = Schlüssel,
28 c.Add "Anton", "Anton"
29 c.Add "Berta", "Berta"
30 c.Add "Lisa", "Lisa"
'Duplikate weil Schlüssel Berta, Lisa und Anton schon vorhanden
32 c.Add "ELisa", "Lisa"
33 c.Add "KAnton", "Anton"
34 c.Add "OBerta", "Berta"
35 c.Add "ELisa", "Anton"
36 c.Add "CLotte", "Berta"
'die gehn wieder
38 c.Add "Willi", "Willi"
39 c.Add "Lotte", "Lotte"
40 On Error GoTo 0
'Ausgabe der Collection im Direktfenster
42 For iCounter = 1 To c.Count
43 Debug.Print iCounter & vbTab & c(iCounter)
44 Next
'wir haben fertig
46 Exit Sub
errorhandler:
'vorab MsgBox Application.VBE.ActiveCodePane.CodeModule.Lines(1, 1) testen
'Sicherheitseinstellung muss Zugriff auf VBA-Projekt erlauben
50 MsgBox "Fehler in Zeile " & Erl & " Fehler Nr.: " & Err.Number & vbLf & _
Err.Description & vbLf & _
Application.VBE.ActiveCodePane.CodeModule.Lines(Erl, 1)
'und weiter mit der nächsten Zeile
54 Resume Next
End Sub