{"id":55000522,"date":"2026-08-01T00:00:00","date_gmt":"2026-10-18T13:26:12","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=522"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"VBA_Basics_Auflistungen_mit_Collections","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/","title":{"rendered":"VBA Basics: Auflistungen mit Collections"},"content":{"rendered":"<p><b>Arrays haben eine feste Gr&ouml;sse &#8211; oder m&uuml;ssen mit <b>ReDim Preserve<\/b> umst&auml;ndlich vergr&ouml;ssert werden. Sobald wir eine Liste brauchen, die w&auml;hrend der Laufzeit w&auml;chst und schrumpft, ist die <b>Collection<\/b> das Mittel der Wahl. Sie geh&ouml;rt zur VBA-Laufzeitbibliothek, steht ohne zus&auml;tzlichen Verweis in jedem Projekt zur Verf&uuml;gung und l&auml;sst sich mit <b>For Each<\/b> durchlaufen. Dieser Beitrag zeigt, was die <b>Collection<\/b> kann, wo ihre Grenzen liegen und wie wir sie in der Praxis einsetzen.<\/b><\/p>\n<h2>Was ist eine Collection?<\/h2>\n<p>Eine <b>Collection<\/b> ist eine geordnete Liste von Elementen. Jedes Element kann einen beliebigen Datentyp haben &#8211; Strings, Zahlen, Objekte oder sogar weitere Collections. Die Reihenfolge der Elemente bleibt erhalten, und jedes Element bekommt automatisch einen numerischen Index, der bei <b>1<\/b> beginnt.<\/p>\n<p>Eine neue <b>Collection<\/b> legen wir so an:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>col<span style=\"color:blue;\"> As <\/span><span style=\"color:blue;\">New<\/span> Collection<\/pre>\n<p>Mit <b>New<\/b> wird die Instanz automatisch beim ersten Zugriff auf die Variable erzeugt &#8211; nicht bereits in der Deklarationszeile selbst. Alternativ k&ouml;nnen wir <b>Dim col As Collection<\/b> schreiben und sp&auml;ter <b>Set col = New Collection<\/b> aufrufen &#8211; das ist n&uuml;tzlich, wenn wir die Collection erst unter bestimmten Bedingungen brauchen.<\/p>\n<h2>Die Member der Collection<\/h2>\n<p>Die <b>Collection<\/b> ist bewusst schlank. Sie bietet genau vier Member:<\/p>\n<ul>\n<li><b>Add Item, [Key], [Before], [After]:<\/b> f&uuml;gt ein Element hinzu. <b>Item<\/b> ist der Wert, <b>Key<\/b> ein optionaler, eindeutiger String-Schl&uuml;ssel. Mit <b>Before<\/b> oder <b>After<\/b> steuern wir die Einf&uuml;geposition.<\/li>\n<li><b>Item(Index):<\/b> gibt das Element an Position <b>Index<\/b> zur&uuml;ck (1-basiert) oder das Element mit dem angegebenen Schl&uuml;ssel. <b>Item<\/b> ist die Standardeigenschaft &#8211; <b>col(3)<\/b> ist gleichbedeutend mit <b>col.Item(3)<\/b>.<\/li>\n<li><b>Count:<\/b> liefert die Anzahl der Elemente.<\/li>\n<li><b>Remove(Index):<\/b> entfernt das Element an der angegebenen Position oder mit dem angegebenen Schl&uuml;ssel. Die Indizes der nachfolgenden Elemente verschieben sich automatisch.<\/li>\n<\/ul>\n<p>Was auff&auml;llt: Es gibt kein <b>Exists<\/b>, kein <b>Replace<\/b> und kein <b>Clear<\/b> oder <b>RemoveAll<\/b>.<\/p>\n<p>Wer die Collection leeren will, kann zwar alle Elemente r&uuml;ckw&auml;rts mit <b>Remove<\/b> l&ouml;schen, schneller und sauberer ist aber eine neue Instanz: <b>Set col = New Collection<\/b>.<\/p>\n<h2>Elemente hinzuf&uuml;gen<\/h2>\n<p>Im einfachsten Fall f&uuml;gen wir Elemente ohne Schl&uuml;ssel hinzu. Sie landen am Ende der Liste und sind &uuml;ber ihren Index erreichbar (siehe Listing 1).<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>CollectionFuellen()\r\n    <span style=\"color:blue;\">Dim <\/span>col<span style=\"color:blue;\"> As <\/span><span style=\"color:blue;\">New<\/span> Collection\r\n    col.Add \"Berlin\"\r\n    col.Add \"Hamburg\"\r\n    col.Add \"M&uuml;nchen\"\r\n    <span style=\"color:blue;\">Debug.Print<\/span> col(1)       ' -&gt; Berlin\r\n    <span style=\"color:blue;\">Debug.Print<\/span> col(2)       ' -&gt; Hamburg\r\n    <span style=\"color:blue;\">Debug.Print<\/span> col.Count    ' -&gt; 3\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Elemente hinzuf&uuml;gen und per Index abrufen<\/span><\/b><\/p>\n<h2>Arbeiten mit Schl&uuml;sseln<\/h2>\n<p>Geben wir beim <b>Add<\/b> einen Schl&uuml;ssel an, k&ouml;nnen wir sp&auml;ter &uuml;ber diesen Schl&uuml;ssel auf das Element zugreifen &#8211; unabh&auml;ngig von seiner Position. Der Schl&uuml;ssel muss ein <b>String<\/b> sein und innerhalb der Collection eindeutig. Beachte die Reihenfolge: Zuerst der Wert, dann der Schl&uuml;ssel &#8211; das ist anders als beim <b>Dictionary<\/b>, wo der Schl&uuml;ssel an erster Stelle steht.<\/p>\n<p>Ein wichtiges Detail: Nach dem <b>Remove<\/b> in Listing 2 verschiebt sich der Index. <b>col(2)<\/b> liefert jetzt <b>&#8220;M&uuml;nchen&#8221;<\/b>, nicht mehr <b>&#8220;Hamburg&#8221;<\/b>. Wer &uuml;ber den Index auf Elemente zugreift und gleichzeitig entfernt, muss die Schleife r&uuml;ckw&auml;rts laufen lassen &#8211; dazu gleich mehr.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>CollectionMitKeys()\r\n    <span style=\"color:blue;\">Dim <\/span>col<span style=\"color:blue;\"> As <\/span><span style=\"color:blue;\">New<\/span> Collection\r\n    ' Add Wert, Schluessel\r\n    col.Add \"Berlin\", \"BE\"\r\n    col.Add \"Hamburg\", \"HH\"\r\n    col.Add \"M&uuml;nchen\", \"BY\"\r\n    ' Zugriff per Schluessel\r\n    <span style=\"color:blue;\">Debug.Print<\/span> col(\"HH\")   ' -&gt; Hamburg\r\n    ' Zugriff per Index geht weiterhin\r\n    <span style=\"color:blue;\">Debug.Print<\/span> col(1)       ' -&gt; Berlin\r\n    ' Entfernen per Schluessel\r\n    col.Remove \"HH\"\r\n    <span style=\"color:blue;\">Debug.Print<\/span> col.Count    ' -&gt; 2\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 2: Collection mit Schl&uuml;sseln<\/span><\/b><\/p>\n<h2>Einf&uuml;geposition steuern<\/h2>\n<p>Mit den Argumenten <b>Before<\/b> und <b>After<\/b> k&ouml;nnen wir Elemente an einer bestimmten Position einf&uuml;gen statt immer am Ende. Das ist ein Vorteil, den das <b>Dictionary<\/b> nicht bietet:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>col<span style=\"color:blue;\"> As <\/span><span style=\"color:blue;\">New<\/span> Collection\r\ncol.Add \"Zweiter\"\r\ncol.Add \"Erster\", Before:=1\r\ncol.Add \"Dritter\", After:=2\r\n' Ergebnis: Erster, Zweiter, Dritter<\/pre>\n<h2>Durchlaufen mit For Each<\/h2>\n<p>Die <b>Collection<\/b> l&auml;sst sich mit <b>For Each<\/b> durchlaufen. Die Laufvariable muss als <b>Variant<\/b> deklariert sein, wenn die Collection Werte enth&auml;lt, oder als der jeweilige Objekttyp, wenn sie Objekte enth&auml;lt:<\/p>\n<pre>' Werte durchlaufen\r\n<span style=\"color:blue;\">Dim <\/span>varItem<span style=\"color:blue;\"> As Variant<\/span>\r\nFor Each varItem In col\r\n    <span style=\"color:blue;\">Debug.Print<\/span> varItem\r\n<span style=\"color:blue;\">Next<\/span> varItem\r\n' Objekte durchlaufen\r\n<span style=\"color:blue;\">Dim <\/span>frm<span style=\"color:blue;\"> As <\/span>Form\r\nFor Each frm In Forms\r\n    <span style=\"color:blue;\">Debug.Print<\/span> frm.Name\r\n<span style=\"color:blue;\">Next<\/span> frm<\/pre>\n<p>Alternativ k&ouml;nnen wir eine <b>For&#8230;Next<\/b>-Schleife mit dem numerischen Index verwenden.<\/p>\n<p>Das ist n&ouml;tig, wenn wir w&auml;hrend des Durchlaufs Elemente entfernen wollen &#8211; <b>For Each<\/b> vertr&auml;gt das nicht:<\/p>\n<pre>' Elemente rueckwaerts entfernen\r\n<span style=\"color:blue;\">Dim <\/span>lngI<span style=\"color:blue;\"> As Long<\/span>\r\nFor lngI = col.Count To 1 Step -1\r\n    <span style=\"color:blue;\">If <\/span>col(lngI) = \"entfernen\"<span style=\"color:blue;\"> Then<\/span>\r\n        col.Remove lngI\r\n    <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">Next<\/span> lngI<\/pre>\n<p>Die r&uuml;ckw&auml;rts laufende Schleife ist der Schl&uuml;ssel: Weil <b>Remove<\/b> die Indizes der nachfolgenden Elemente verschiebt, w&uuml;rden wir vorw&auml;rts Elemente &uuml;berspringen.<\/p>\n<h2>Pr&uuml;fen, ob ein Schl&uuml;ssel existiert<\/h2>\n<p>Die gr&ouml;sste Schw&auml;che der <b>Collection<\/b>: Es gibt keine <b>Exists<\/b>-Methode. Versuchen wir, einen doppelten Schl&uuml;ssel hinzuzuf&uuml;gen, erhalten wir Laufzeitfehler <b>457<\/b>. Greifen wir auf einen nicht vorhandenen Schl&uuml;ssel zu, gibt es Laufzeitfehler <b>5<\/b>. Der &uuml;bliche Workaround nutzt gezielt <b>On Error Resume Next<\/b>.<\/p>\n<p>Da das Element einen beliebigen Datentyp besitzen kann, erfolgt der Zugriff in Listing 3 &uuml;ber eine <b>Variant<\/b>-Variable.<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>ExistiertInCol(col<span style=\"color:blue;\"> As <\/span>Collection, ByVal strKey<span style=\"color:blue;\"> As String<\/span>)<span style=\"color:blue;\"> As Boolean<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>varDummy<span style=\"color:blue;\"> As Variant<\/span>\r\n    On Error Resume <span style=\"color:blue;\">Next<\/span>\r\n    varDummy = col(strKey)\r\n    ExistiertInCol = (Err.Number = 0)\r\n    Err.Clear\r\n    <span style=\"color:blue;\">On Error GoTo<\/span> 0\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 3: Hilfsfunktion f&uuml;r die Schl&uuml;sselpr&uuml;fung<\/span><\/b><\/p>\n<p>Die Funktion funktioniert, ist aber umst&auml;ndlich. Wer h&auml;ufig pr&uuml;fen muss, ob ein Schl&uuml;ssel existiert, sollte stattdessen das <b>Dictionary<\/b> verwenden &#8211; dort gibt es <b>Exists<\/b> als eingebaute Methode. Mehr dazu im Folgeartikel.<\/p>\n<h2>Praxis: Objekte in einer Collection verwalten<\/h2>\n<p>Der st&auml;rkste Einsatzbereich der <b>Collection<\/b> ist das Sammeln von Objektinstanzen. Ein typisches Muster: Wir erzeugen mehrere Timer-Objekte und wollen sie zentral stoppen k&ouml;nnen.<\/p>\n<p>In Listing 4 ist die Laufvariable direkt als <b>CLS_Timer<\/b> typisiert &#8211; das funktioniert, weil die Collection Objekte enth&auml;lt. So haben wir IntelliSense in der Schleife. Am Ende erzeugen wir mit <b>Set mcolTimer = New Collection<\/b> eine frische Instanz &#8211; das ist die einfachste Art, eine Collection zu leeren.<\/p>\n<pre><span style=\"color:blue;\">Private <\/span>colTimer<span style=\"color:blue;\"> As <\/span><span style=\"color:blue;\">New<\/span> Collection\r\n<span style=\"color:blue;\">Public Sub <\/span>TimerRegistrieren(ByVal strName<span style=\"color:blue;\"> As String<\/span>, ByVal objTimer<span style=\"color:blue;\"> As <\/span>CLS_Timer)\r\n    colTimer.Add objTimer, strName\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Public Sub <\/span>AlleTimerStoppen()\r\n    <span style=\"color:blue;\">Dim <\/span>objTimer<span style=\"color:blue;\"> As <\/span>clsTimer\r\n    For Each objTimer In colTimer\r\n        objTimer.Stoppen\r\n    <span style=\"color:blue;\">Next<\/span> objTimer\r\n    <span style=\"color:blue;\">Set<\/span> colTimer = <span style=\"color:blue;\">New<\/span> Collection\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 4: Objektinstanzen zentral verwalten<\/span><\/b><\/p>\n<h2>Praxis: Duplikate erkennen<\/h2>\n<p>Da <b>Add<\/b> bei einem doppelten Schl&uuml;ssel Fehler <b>457<\/b> ausl&ouml;st, k&ouml;nnen wir dieses Verhalten nutzen, um Duplikate zu erkennen &#8211; ohne die Hilfsfunktion von oben.<\/p>\n<p>Die Funktion aus Listing 5 versucht, das Element hinzuzuf&uuml;gen. Gelingt es, ist der Schl&uuml;ssel neu &#8211; und das Element bleibt in der Collection erhalten. Schl&auml;gt es mit Fehler <b>457<\/b> fehl, war der Schl&uuml;ssel bereits vorhanden und die Collection bleibt unver&auml;ndert.<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>IstDuplikat(col<span style=\"color:blue;\"> As <\/span>Collection, ByVal strKey<span style=\"color:blue;\"> As String<\/span>, ByVal varWert<span style=\"color:blue;\"> As Variant<\/span>)<span style=\"color:blue;\"> As Boolean<\/span>\r\n    On Error Resume <span style=\"color:blue;\">Next<\/span>\r\n    col.Add varWert, strKey\r\n    IstDuplikat = (Err.Number = 457)\r\n    Err.Clear\r\n    <span style=\"color:blue;\">On Error GoTo<\/span> 0\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 5: Duplikate erkennen beim Hinzuf&uuml;gen<\/span><\/b><\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Die <b>Collection<\/b> ist das einfachste Werkzeug in VBA f&uuml;r dynamische Listen. Sie ist ohne Verweis verf&uuml;gbar, bewahrt die Einf&uuml;gereihenfolge und eignet sich besonders f&uuml;r Objektsammlungen. An ihre Grenzen stossen wir, sobald wir h&auml;ufig pr&uuml;fen m&uuml;ssen, ob ein Eintrag vorhanden ist, oder eine Lookup-Tabelle im Speicher brauchen &#8211; denn es gibt kein <b>Exists<\/b>, kein <b>Keys<\/b>-Array und primitive Werte lassen sich nicht direkt ersetzen. Objekte k&ouml;nnen dagegen weiterhin &uuml;ber ihre Referenz ver&auml;ndert werden &#8211; nur der Eintrag in der Collection selbst ist unver&auml;nderlich.<\/p>\n<p>Genau dort setzt der Folgeartikel  <b>VBA Basics: Auflistungen mit Dictionarys <\/b>(<b>www.vbentwickler.de\/510<\/b>)an. Das <b>Dictionary<\/b> aus der <b>Microsoft Scripting Runtime<\/b> bietet <b>Exists<\/b>, direktes &Auml;ndern und die M&ouml;glichkeit, Schl&uuml;ssel und Werte als Array abzurufen. Wer zun&auml;chst die Grundlagen von Arrays nachlesen m&ouml;chte, findet sie im Beitrag <b>VBA Basics: Mit Arrays programmieren<\/b> (<b>www.vbentwickler.de\/439<\/b>).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Arrays haben eine feste Gr&ouml;sse &#8211; oder m&uuml;ssen mit ReDim Preserve umst&auml;ndlich vergr&ouml;ssert werden. Sobald wir eine Liste brauchen, die w&auml;hrend der Laufzeit w&auml;chst und schrumpft, ist die Collection das Mittel der Wahl. Sie geh&ouml;rt zur VBA-Laufzeitbibliothek, steht ohne zus&auml;tzlichen Verweis in jedem Projekt zur Verf&uuml;gung und l&auml;sst sich mit For Each durchlaufen. Dieser Beitrag zeigt, was die Collection kann, wo ihre Grenzen liegen und wie wir sie in der Praxis einsetzen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662026,66042026,44000030,44000025],"tags":[],"yst_prominent_words":[],"class_list":["post-55000522","post","type-post","status-publish","format-standard","hentry","category-662026","category-66042026","category-PowerPoint_programmieren","category-VBAProgrammierung"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"Arrays haben eine feste Gr\u00f6sse - oder m\u00fcssen mit ReDim Preserve umst\u00e4ndlich vergr\u00f6ssert werden. Sobald wir eine Liste brauchen, die w\u00e4hrend der Laufzeit w\u00e4chst und schrumpft, ist die Collection das Mittel der Wahl. Sie geh\u00f6rt zur VBA-Laufzeitbibliothek, steht ohne zus\u00e4tzlichen Verweis in jedem Projekt zur Verf\u00fcgung und l\u00e4sst sich mit For Each durchlaufen. Dieser Beitrag zeigt, was die Collection kann, wo ihre Grenzen liegen und wie wir sie in der Praxis einsetzen.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Andr\u00e9 Minhorst\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"VBA Basics: Auflistungen mit Collections - Visual Basic Entwickler\" \/>\n\t\t<meta property=\"og:description\" content=\"Arrays haben eine feste Gr\u00f6sse - oder m\u00fcssen mit ReDim Preserve umst\u00e4ndlich vergr\u00f6ssert werden. Sobald wir eine Liste brauchen, die w\u00e4hrend der Laufzeit w\u00e4chst und schrumpft, ist die Collection das Mittel der Wahl. Sie geh\u00f6rt zur VBA-Laufzeitbibliothek, steht ohne zus\u00e4tzlichen Verweis in jedem Projekt zur Verf\u00fcgung und l\u00e4sst sich mit For Each durchlaufen. Dieser Beitrag zeigt, was die Collection kann, wo ihre Grenzen liegen und wie wir sie in der Praxis einsetzen.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-18T13:26:12+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"-001-11-30T00:00:00+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"VBA Basics: Auflistungen mit Collections - Visual Basic Entwickler\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Arrays haben eine feste Gr\u00f6sse - oder m\u00fcssen mit ReDim Preserve umst\u00e4ndlich vergr\u00f6ssert werden. Sobald wir eine Liste brauchen, die w\u00e4hrend der Laufzeit w\u00e4chst und schrumpft, ist die Collection das Mittel der Wahl. Sie geh\u00f6rt zur VBA-Laufzeitbibliothek, steht ohne zus\u00e4tzlichen Verweis in jedem Projekt zur Verf\u00fcgung und l\u00e4sst sich mit For Each durchlaufen. Dieser Beitrag zeigt, was die Collection kann, wo ihre Grenzen liegen und wie wir sie in der Praxis einsetzen.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Auflistungen_mit_Collections\\\/#blogposting\",\"name\":\"VBA Basics: Auflistungen mit Collections - Visual Basic Entwickler\",\"headline\":\"VBA Basics: Auflistungen mit Collections\",\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/cropped-header_vbe-1.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#articleImage\",\"width\":664,\"height\":225},\"datePublished\":\"2026-08-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Auflistungen_mit_Collections\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Auflistungen_mit_Collections\\\/#webpage\"},\"articleSection\":\"2026, 4\\\/2026, PowerPoint programmieren, VBA-Programmierung\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Auflistungen_mit_Collections\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/#listItem\",\"name\":\"2026\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/#listItem\",\"position\":2,\"name\":\"2026\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/4\\\/2026\\\/#listItem\",\"name\":\"4\\\/2026\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/4\\\/2026\\\/#listItem\",\"position\":3,\"name\":\"4\\\/2026\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/4\\\/2026\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Auflistungen_mit_Collections\\\/#listItem\",\"name\":\"VBA Basics: Auflistungen mit Collections\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/#listItem\",\"name\":\"2026\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Auflistungen_mit_Collections\\\/#listItem\",\"position\":4,\"name\":\"VBA Basics: Auflistungen mit Collections\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/4\\\/2026\\\/#listItem\",\"name\":\"4\\\/2026\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/cropped-header_vbe-1.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Auflistungen_mit_Collections\\\/#organizationLogo\",\"width\":664,\"height\":225},\"image\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Auflistungen_mit_Collections\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Auflistungen_mit_Collections\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Andr\\u00e9 Minhorst\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Auflistungen_mit_Collections\\\/#webpage\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Auflistungen_mit_Collections\\\/\",\"name\":\"VBA Basics: Auflistungen mit Collections - Visual Basic Entwickler\",\"description\":\"Arrays haben eine feste Gr\\u00f6sse - oder m\\u00fcssen mit ReDim Preserve umst\\u00e4ndlich vergr\\u00f6ssert werden. Sobald wir eine Liste brauchen, die w\\u00e4hrend der Laufzeit w\\u00e4chst und schrumpft, ist die Collection das Mittel der Wahl. Sie geh\\u00f6rt zur VBA-Laufzeitbibliothek, steht ohne zus\\u00e4tzlichen Verweis in jedem Projekt zur Verf\\u00fcgung und l\\u00e4sst sich mit For Each durchlaufen. Dieser Beitrag zeigt, was die Collection kann, wo ihre Grenzen liegen und wie wir sie in der Praxis einsetzen.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Auflistungen_mit_Collections\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"datePublished\":\"2026-08-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"VBA Basics: Auflistungen mit Collections - Visual Basic Entwickler","description":"Arrays haben eine feste Gr\u00f6sse - oder m\u00fcssen mit ReDim Preserve umst\u00e4ndlich vergr\u00f6ssert werden. Sobald wir eine Liste brauchen, die w\u00e4hrend der Laufzeit w\u00e4chst und schrumpft, ist die Collection das Mittel der Wahl. Sie geh\u00f6rt zur VBA-Laufzeitbibliothek, steht ohne zus\u00e4tzlichen Verweis in jedem Projekt zur Verf\u00fcgung und l\u00e4sst sich mit For Each durchlaufen. Dieser Beitrag zeigt, was die Collection kann, wo ihre Grenzen liegen und wie wir sie in der Praxis einsetzen.","canonical_url":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/#blogposting","name":"VBA Basics: Auflistungen mit Collections - Visual Basic Entwickler","headline":"VBA Basics: Auflistungen mit Collections","author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/vbentwickler.de\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","@id":"https:\/\/vbentwickler.de\/#articleImage","width":664,"height":225},"datePublished":"2026-08-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/#webpage"},"isPartOf":{"@id":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/#webpage"},"articleSection":"2026, 4\/2026, PowerPoint programmieren, VBA-Programmierung"},{"@type":"BreadcrumbList","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/#listItem","position":1,"name":"Home","item":"https:\/\/vbentwickler.de\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/#listItem","name":"2026"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/#listItem","position":2,"name":"2026","item":"https:\/\/vbentwickler.de\/category\/2026\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/4\/2026\/#listItem","name":"4\/2026"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/4\/2026\/#listItem","position":3,"name":"4\/2026","item":"https:\/\/vbentwickler.de\/category\/2026\/4\/2026\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/#listItem","name":"VBA Basics: Auflistungen mit Collections"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/#listItem","name":"2026"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/#listItem","position":4,"name":"VBA Basics: Auflistungen mit Collections","previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/4\/2026\/#listItem","name":"4\/2026"}}]},{"@type":"Organization","@id":"https:\/\/vbentwickler.de\/#organization","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","url":"https:\/\/vbentwickler.de\/","logo":{"@type":"ImageObject","url":"https:\/\/vbentwickler.de\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/#organizationLogo","width":664,"height":225},"image":{"@id":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author","url":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","width":96,"height":96,"caption":"Andr\u00e9 Minhorst"}},{"@type":"WebPage","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/#webpage","url":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/","name":"VBA Basics: Auflistungen mit Collections - Visual Basic Entwickler","description":"Arrays haben eine feste Gr\u00f6sse - oder m\u00fcssen mit ReDim Preserve umst\u00e4ndlich vergr\u00f6ssert werden. Sobald wir eine Liste brauchen, die w\u00e4hrend der Laufzeit w\u00e4chst und schrumpft, ist die Collection das Mittel der Wahl. Sie geh\u00f6rt zur VBA-Laufzeitbibliothek, steht ohne zus\u00e4tzlichen Verweis in jedem Projekt zur Verf\u00fcgung und l\u00e4sst sich mit For Each durchlaufen. Dieser Beitrag zeigt, was die Collection kann, wo ihre Grenzen liegen und wie wir sie in der Praxis einsetzen.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/vbentwickler.de\/#website"},"breadcrumb":{"@id":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/#breadcrumblist"},"author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"creator":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"datePublished":"2026-08-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00"},{"@type":"WebSite","@id":"https:\/\/vbentwickler.de\/#website","url":"https:\/\/vbentwickler.de\/","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","inLanguage":"de-DE","publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","og:type":"article","og:title":"VBA Basics: Auflistungen mit Collections - Visual Basic Entwickler","og:description":"Arrays haben eine feste Gr\u00f6sse - oder m\u00fcssen mit ReDim Preserve umst\u00e4ndlich vergr\u00f6ssert werden. Sobald wir eine Liste brauchen, die w\u00e4hrend der Laufzeit w\u00e4chst und schrumpft, ist die Collection das Mittel der Wahl. Sie geh\u00f6rt zur VBA-Laufzeitbibliothek, steht ohne zus\u00e4tzlichen Verweis in jedem Projekt zur Verf\u00fcgung und l\u00e4sst sich mit For Each durchlaufen. Dieser Beitrag zeigt, was die Collection kann, wo ihre Grenzen liegen und wie wir sie in der Praxis einsetzen.","og:url":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/","og:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","og:image:secure_url":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","article:published_time":"2026-10-18T13:26:12+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"VBA Basics: Auflistungen mit Collections - Visual Basic Entwickler","twitter:description":"Arrays haben eine feste Gr\u00f6sse - oder m\u00fcssen mit ReDim Preserve umst\u00e4ndlich vergr\u00f6ssert werden. Sobald wir eine Liste brauchen, die w\u00e4hrend der Laufzeit w\u00e4chst und schrumpft, ist die Collection das Mittel der Wahl. Sie geh\u00f6rt zur VBA-Laufzeitbibliothek, steht ohne zus\u00e4tzlichen Verweis in jedem Projekt zur Verf\u00fcgung und l\u00e4sst sich mit For Each durchlaufen. Dieser Beitrag zeigt, was die Collection kann, wo ihre Grenzen liegen und wie wir sie in der Praxis einsetzen.","twitter:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png"},"aioseo_meta_data":{"post_id":"55000522","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2026-10-18 14:16:31","updated":"2026-10-18 14:16:31","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2026\/\" title=\"2026\">2026<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2026\/4\/2026\/\" title=\"4\/2026\">4\/2026<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tVBA Basics: Auflistungen mit Collections\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/vbentwickler.de\/"},{"label":"2026","link":"https:\/\/vbentwickler.de\/category\/2026\/"},{"label":"4\/2026","link":"https:\/\/vbentwickler.de\/category\/2026\/4\/2026\/"},{"label":"VBA Basics: Auflistungen mit Collections","link":"https:\/\/vbentwickler.de\/VBA_Basics_Auflistungen_mit_Collections\/"}],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000522","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000522"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000522\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000522"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000522"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000522"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}