VBA liefert in seinem Sprachumfang eine Reihe von vordefinierten Funktionen mit. Diese müssen nicht, wie in C üblich, dem Compiler durch Angabe von Bibliotheken im Kopfabschnitt (header) der Code-Datei "angekündigt" werden, sondern sie gehören zu den Grundelementen der Sprache und sind somit ohne weiteres verwendbar.
Typumwandlungsfunktionen
Zu den am häufigsten verwendeten Funktionen zählen die zahlreichen Typumwandlungsfunktionen, die benötigt werden, um Werte eines Zahlentyps ohne Datenverluste in eine Variable eines anderen Typs einschreiben zu können. Die wichtigsten von diesen Typumwandlungsfunktionen folgen in der nächsten Tabelle.
Tabelle 5.7: Typumwandlungsfunktionen
Funktion
|
Zahlentyp des
Rückgabewertes
|
Bemerkungen
|
CInt(Ausdruck)
|
Integer
|
Der Nachkommaanteil wird
gerundet
|
CLng(Ausdruck)
|
Long
|
Der Nachkommaanteil wird
gerundet
|
CSng(Ausdruck)
|
Single
|
|
CDbl(Ausdruck)
|
Double
|
|
CStr(Ausdruck)
|
String
|
|
CVar(Ausdruck)
|
Variant
|
|
Das erforderliche Argument Ausdruck ist ein Zeichenfolgenausdruck oder ein numerischer Ausdruck.
Um schon vor der Verwendung einer der Funktionen (zur Vermeidung von Fehlern) feststellen zu können, ob es sich bei dem Ausdruck um eine Zeichenfolge handelt, die in eine Zahl umgewandelt werden kann, stellt VBA die Funktion IsNumeric zur Verfügung. Sie liefert den Wert True, wenn eine Umwandlung möglich ist und False, wenn der Ausdruck nicht in eine Zahl umgewandelt werden kann:
boolWert = IsNumeric(Ausdruck)
String-Funktionen
Gerade, wenn viel mit Text-Variablen gearbeitet wird, werden Funktionen benötigt, die String-Variablen und -Konstanten verarbeiten können. Auch diese gehören in VBA zu den Standard-Sprachelementen.
Right-, Left-, Mid-Funktionen: Diese liefern als Rückgabewerte Strings, deren Länge durch den bzw. die Übergabeparameter festgelegt sind:
Right(String, Laenge)
Gibt einen String zurück, der Teilmenge des übergebenen Strings ist, und mit dessen rechten Ende identisch ist. Beispiel:
Dim strWert As String
strWert = Right("Zeichenfolge",5)
Left(String, Laenge)
Gibt einen String zurück, der Teilmenge des übergebenen Strings ist, und mit dessen linken Ende (seinem Anfang) identisch ist. Beispiel:
strWert = Left("Zeichenfolge",3)
Mid(String, Start[,Laenge])
Gibt einen String zurück, der Teilmenge des übergebenen Strings ist, und ab der übergebenen Startposition (von Links gezählt) mit diesem identisch ist. Die Länge des Rückgabe-Strings kann außer durch die Startposition auch zusätzlich durch einen optionalen dritten Parameter beeinflußt werden. Beispiel:
strWert = Mid("Zeichenfolge mit Leerzeichen",8,11)
Die Länge einer Zeichenfolgenkonstanten oder -Variablen kann durch Len(String) ermittelt werden. Zurückgegeben wird eine Integer-Zahl. Beispiel:
Dim z As Integer
z = Len("12346")
Um Zeichenketten von etwaigen Leerzeichen am Anfang und/oder am Ende des Strings zu trennen, bietet VBA gleich drei Funktionen an:
LTrim(Zeichenfolge)
Eliminiert Leerzeichen am Stringanfang.
RTrim(Zeichenfolge)
Eliminiert Leerzeichen am Stringende.
Trim(Zeichenfolge)
Eliminiert Leerzeichen an beiden Enden der Zeichenkette.
Beispiel:
strWert=Trim(" Einige Leerzeichen ")
Ob sich in einem String eine gesuchte Zeichenkette als Teilmenge befindet, kann durch zwei Funktionen von VBA, InStr und Like, ermittelt werden.
Die InStr-Funktion gibt eine Integer-Zahl an den aufrufenden Codeabschnitt zurück, der angibt, ab welcher Position die gesuchte Zeichenkette mit dem String identisch ist:
InStr([Start, ]Zeichenfolge1, Zeichenfolge2[, Vergleichsart])
Wird der optionale Parameter Start, eine Ganzzahl, an die Funktion übergeben, dann wird erst ab der Position, die mit Start identisch ist, nach der Zeichenfolge gesucht; fehlt er, dann wird der gesamte String durchsucht.
Der ebenfalls optionale Parameter Vergleichsart stellt eine Vorschrift dar, wie die Funktion Groß- und Kleinschreibung, bzw. deutsche Umlaute und das "ß" zu behandeln sind. Bei Vergleichsart=1 werden Groß- und Kleinbuchstaben als gleichwertig behandelt, und z.B. der Umlaut "ö" folgt auf den Vokal "o"; bei Vergleichsart=0 werden beide Zeichenfolgen binär miteinander verglichen, d.h., Großbuchstaben haben eine geringere Wertigkeit (vergl. Ascii-Code) als Kleinbuchstaben. Beispiel:
strWert = "Mannschaft wie Flasche leer"
z = InStr( , strWert, "LEER", 1) z = InStr( , strWert, "LEER", 0)
Funktion Nummer zwei hat folgende Syntax:
Ergebnis = Zeichenfolge Like Muster
Die Like-Funktion gibt einen boolschen Wert zurück, der charakterisiert, ob der String vor dem Funktionsnamen mit dem Muster-String nach dem Funktionsnamen identisch (True) ist. Dabei sind auch Platzhalter ("?" für ein Zeichen, "*" für mehrere Zeichen) erlaubt. Beispiel:
Dim booWert As Boolean
strWert = "Meier"
booWert = strWert Like "M*er"
Ebenfalls große Bedeutung für die Programmierung mit VBA hat der Format-Befehl (siehe Online-Hilfe):
Format(Ausdruck[, Format[, firstdayofweek[, firstweekofyear]]])
Beispiele:
Dim Zeit1, Datum1, ZF1
Zeit1 = #17:04:23#
ZF1 = Format(5459.4, "##,##0.00") ZF1 = Format(Zeit1, "h:m:s") ZF1 = Format(Zeit1, "hh:mm:ss AMPM")
Mathematische Funktionen
In VBA sind ebenfalls schon viele mathematische Funktionen integriert. Da die Verwendung dieser Funktionen i.A. selbsterklärend ist, sollen hier die Funktionen nur in Tabellenform erwähnt werden.
Tabelle 5.8: Einige mathematische Funktionen
Funktion
|
Bedeutung
|
Abs
|
Absolutwert
|
Atn
|
Arcus Tangens
|
Cos
|
Cosinus
|
Exp
|
Exponentialfunktion
|
Log
|
Logarithmus
|
Sgn
|
Signum (Vorzeichen)
|
Sin
|
Sinus
|
Sqr
|
Wurzel
|
Tan
|
Tangens
|
|