cmp-online.de
Startseite
Neu...
Yamaha XT600Z
Meine Tenere
XT-Technik
VB/VBA-Grundlagen
Grundelemente
Prozeduren
Operatoren
Variablen
Methoden
Schleifen
Vordefinierte Funktionen
Excel-Objekte
Impressum
private homepage von christian mario preussler
Vordefinierte Funktionen

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) 'liefert strWert = "folge"

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) 'liefert strWert = "Zei"
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) 'liefert strWert = "folge mit L"

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") 'liefert z = 5

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 ") 'liefert strWert = "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) 'liefert z = 23 
z = InStr( , strWert, "LEER", 0) 'liefert z = 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" 'liefert booWert = True

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") ' Liefert "5.459,40".
ZF1 = Format(Zeit1, "h:m:s") ' Liefert "17:4:23".
ZF1 = Format(Zeit1, "hh:mm:ss AMPM") ' Liefert "17:04:23".

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