Array(ArgList() As Variant) As Variant
Weist einer Variablen vom Typ Variant einen eindimensionalen Array zu. Die Werte
des Arrays können anschließend wie bei Arrays üblich aufgerufen werden.
ArgList
ist eine kommaseparierte Liste von Werten beliebigen Datentyps.
Der Array selbst ist aber immer ein Variant.
Sub Liste() Dim x As Variant, y As Byte x = Array(10, 20, 30) y = x(0) Debug.Print y ' Gibt 10 zurück End Sub
Filter(SourceArray() As String, Match As String, [Include As Boolean = Wahr], [Compare As VbCompareMethod = vbBinaryCompare])
Erwartet mit SourceArray
einen eindimensionalen Array, der aus Strings
besteht, und gibt einen Array mit denjenigen Feldern zurück, in denen Match
gefunden wird. Mit Include = False
werden umgekehrt genau diejenigen
Felder zurückgegeben, auf die Match
nicht passt. Darüber hinaus
kann noch mit dem Argument Compare
ein Wert aus der Aufzählung
VbCompareMethod
ausgewählt werden, um anzugeben, wie verglichen werden soll.
Sub Teilliste() Dim Texte(3) As String, Teil() As String Dim i As Integer Texte(0) = "Liebende" Texte(1) = "lieben" Texte(2) = "die" Texte(3) = "Liebe" Teil = Filter(Texte, "Liebe") For i = 0 To 1 Debug.Print Teil(i) Next End Sub
Setzt man im obigen Beispiel
VbCompareMethod
auf vbTextCompare
, enthält der Array Teil
einen weiteren
Eintrag.
Join(SourceArray(), [Delimiter As String = " "]) As String
Fügt einen eindimensionalen Array SourceArray
zu einem String
zusammen. Mit Delimiter
kann eine Zeichenfolge angegeben werden, die
zwischen den einzelnen Datenfeldern eingefügt werden soll.
Function Satz() Dim Wort(2) As String Wort(0) = "Das" Wort(1) = "VBA" Wort(2) = "Tutorial" Satz = Join(Wort) End Function
LBound(SourceArray(), [Dimension As Long = 1]) As Long
Gibt den kleinsten erlaubten Indexwert für die Dimension
eines Arrays
zurück.
Function Untergrenze() Dim Zeichen(65 To 90) Untergrenze = LBound(Zeichen) ' Gibt 65 zurück End Function
Mit UBound(Array) - LBound(Array)
kann die Größe einer Dimension
errechnet werden.
Split(Expression As String, [Delimiter As String = " "], [Limit As Long = -1], [Compare As VbCompareMethod = vbBinaryCompare]) As Array()
Zerlegt einen String zu einem eindimensionalen Array. Mit Delimiter
kann eine Zeichenkette angegeben werden, die als Trennzeichen verwendet wird. Ob
dabei zwischen Groß/Kleinschreibung unterschieden wird, hängt von
Compare
ab, wo ein Wert aus der Aufzählung
VbCompareMethod
möglich ist. Mit Limit
kann angegeben werden, dass nach einer maximalen
Zahl von Treffern des Trennzeichens nicht weiter zerlegt werden soll, der letzte
String des zurückgegebenen Arrays enthält dann möglicherweise noch weitere Treffer
von Delimiter
.
Sub zerlege() Dim Wort() As String Dim i As Integer Wort = Split("Das VBA Tutorial") For i = 0 To 2 Debug.Print Wort(i) Next End Sub
Ändert man das Beispiel zu
Split("Das VBA Tutorial", "A", , vbTextCompare)
,
zeigt sich die Auswirkung von
VbCompareMethod
.
UBound(SourceArray(), [Dimension As Long = 1]) As Long
Gibt den größten erlaubten Indexwert für die Dimension
eines Arrays
zurück.
Function Obergrenze() Dim Zeichen(65 To 90) Obergrenze = UBound(Zeichen) ' Gibt 90 zurück End Function
Mit UBound(Array) - LBound(Array)
kann die Größe einer Dimension
errechnet werden.