um alles etwas sauberer abzubilden und einfacher erweiterbar zumachen, möchte ich Arrays (Excel VBA) durch eigene Types ersetzen. Die Arrays (2 Dimensionen) haben den Vorteil, das man sie wie eine Tabelle zeilen- und spaltenweise nach abfragen kann; einfach unter Angabe der zu durchsuchenden Spalte, Suchwert und der auszugebenden Spalte in der gefundenen Zeile. Im Prinzip wie eine SQL-Abfrage.
Das Problem ist, das bei dem Definierten Type feste Namen für die Eigenschaften vergeben sind, das das Dynamische Ändern oder Abfragen mit Zeile/Spalte schwierig macht.
Bei Array ist der Nachteil das man sich immer die Nummer/Position der Spalte (zweite Dimension) merken / nachschauen muss und das man durch Dim / Redim / Preserve die Dimension erweitern muss, wenn etwas neues dazukommt.
Beispiel Array:
Das Array ist wie folgt definiert:
Public arr(0 to X, 0 to Y) As Variant
Beispiel Type
Public Type Daten
Name As String
Wert1 As Integer
Wert2 As Boolean
....
End Type
Das ganze als Array:
Public arr_Daten(0 to X) As Daten
Hier gibt es also nur noch eine Dimension mit fest definierten Eigenschaften und Datentypen, das die ganze Sache auch weniger Speicherintensiv macht (lezteres ist eigentlich unerheblich.
Lassen sich Die Eigenschaften dynamisch suchen; z.B. Analog eines Controls in einer form: Me.Controls("Label" & i)