'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