Vergleich zwischen Collection und Array

Aus VBA-wiki
Version vom 10. Oktober 2018, 15:11 Uhr von Pwania (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Das Anlegen, Befüllen und Auslesen wird bei Collections und eindimensionalen Arrays sehr ähnlich gehandhabt: {| class="wikitable" ! Schritt ! Array ! Anme…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Das Anlegen, Befüllen und Auslesen wird bei Collections und eindimensionalen Arrays sehr ähnlich gehandhabt:

Schritt Array Anmerkungen Collection Anmerkungen
Deklaration
Dim strArray() As String
Dim colCollection As Collection
Vor dem ersten Einsatz
ReDim strArray(3)
Die Anzahl der erwarteten Einträge muss bekannt sein. Da das Array 0-basiert ist, wird hier der höchste erwartete Index angegeben (Anzahl - 1).
Set colCollection = New Collection
Die Collection muss initialisiert werden, damit sie die Elemente aufnehmen kann.
Erstes Element
strArray(0) = "Max"
Das Array enthält nach der Dimensionierung die geforderte Anzahl von leeren Plätzen. Jedes Element wird einem Platz zugeordnet.
colCollection.Add "Max"
Die Collection ist ursprünglich leer, einzelne Elemente werden mit 'Add' hinzugefügt.
Weitere Elemente
strArray(1) = "Moritz"
strArray(2) = "Hempel"
strArray(3) = "Bolte"
colCollection.Add "Moritz"
colCollection.Add "Hempel"
colCollection.Add "Bolte"
Werte abfragen
For lngIndex = 0 To UBound(strNames)
    Debug.Print strArray(lngIndex)
Next lngIndex
Array ist 0-basierend, UBound ermittelt letzten Index.
For lngIndex = 1 To colNames.Count
    Debug.Print colNames.Item(lngIndex)
Next lngIndex
Collection ist 1-basierend, Count ermittelt Anzahl der Elemente

Große Unterschiede offenbaren sich jedoch, wenn man die zusätzlichen Parameter der Add-Methode zur Positionierung eines Elementes und der Vergabe eines eindeutigen Schlüssels oder die Vorgehensweise beim Verschieben von Elementen betrachtet:

Schritt Array Anmerkungen Collection Anmerkungen
Element löschen
Neues Element positionieren
Positionen vertauschen
Schlüssel verwenden