Funktionen für Arrays

Array

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

 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

siehe auch
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

siehe auch
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

siehe auch
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

siehe auch
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.