Bevor wir den Bereich der Variablen erläutern, müssen wir uns mit einigen mathematischen Zusammenhängen befassen, denn diese stellen das Rüstzeug im Umgang mit Variablen dar. Wir werden im folgenden Abschnitt die numerischen und logischen Ausdrücke, sowie deren Operatoren kennenlernen.
Numerische Ausdrücke und Operatoren
In den vorangegangenen Abschnitten haben Sie hauptsächlich mit Befehlen gearbeitet, die die Bedienung von Word 2000 nachbildeten oder dem Anwender Informationen in einer Messagebox darstellten. Hierbei handelt es sich um die klassische Programmierung von Makros. Im folgenden wollen wir numerische Ausdrücke und mathematische, sowie logische Operatoren kennenlernen.
Numerische Ausdrücke repräsentieren Werte – dies können Zahlen oder Berechnungen sein – die zu einem Ergebnis führen. Die Addition zweier Zahlen ist ein Beispiel für einen numerischen Ausdruck, dazu geben Sie normalerweise einen Ausdruck in der folgenden Form an:
4 + 7
Neben den numerischen Ausdrücken gibt es noch andere. Dazu zählen zum Beispiel Textausdrücke. Sie repräsentieren Zeichenketten, diese werden auch häufig als Strings bezeichnet. Den Umgang mit Ausdrücken können Sie einfach erlernen, indem Sie zum Beispiel im Fenster DIREKTBEREICH die folgenden Anweisungen eingeben:
Print 4 + 7
Nachdem Sie die Ü-Taste betätigt haben erscheint unterhalb der Anweisung das Ergebnis:
11
Sie können neben ganzen Zahlen natürlich auch Dezimalzahlen verwenden. Als Beispiel sei hier die Addition zweier reeller Zahlen angeführt. Dabei ist zu beachten, daß nicht das Komma sondern der Punkt als Dezimaltrennzeichen verwendet wird.
Print 5.2 + 8.6
Dezimalzahlen zwischen -1 und 1 können auch ohne die führende Null dargestellt werden.
Print .5 + .7
Bei großen Zahlenwerten empfiehlt sich die Darstellung in Exponentialform. Dazu geben Sie beispielsweise 1E5 ein. Visual Basic for Applications verwendet – wie auch die meisten Taschenrechner – erst bei sehr hohen Zahlenwerten automatisch die exponentielle Darstellung.
Print 1E5
Neben dem dekadischen Zahlensystem gibt es noch weitere. Die bekanntesten sind das duale, hexadezimale oder oktale Zahlensystem. Visual Basic for Applications kann die Zahlen auch im hexadezimalen oder oktalen Zahlensystem darstellen. Dazu stellen Sie dem jeweiligen Zahlenwert ein &H für das hexadezimale und &O für das oktale Zahlensystem voran.
&H7F3E ‘Hexzahl
&O415 ‘Oktalzahl
Abb6.TIF
Verschiedene Arten von Ausdrücken und ihre Ergebnisse, dargestellt im Direktfenster.
Numerische Ausdrücke werden über arithmetische Operatoren miteinander verknüpft. Dazu stehen in Visual Basic for Applications die in Programmiersprachen üblichen Operatoren zur Verfügung. Die folgende Tabelle gibt die unter Visual Basic for Applications unterstützten Operatoren wieder:
Operator Bezeichnung
() Klammert einen Teilausdruck
^ Potenzierung
* Multiplikation
/ Division
Ganzahlige Division (Division ohne Rest)
Mod Modulo (Rest einer Division)
+ Addition
– Subtraktion
Die in der Tabelle aufgelisteten mathematischen Operatoren sind nach ihrer Priorität geordnet. Dabei hat ein Klammerausdruck die höchste Priorität. Die folgenden Beispiele werden diesen Sachverhalt noch deutlicher machen.
Ausdruck Ergebnis
4 + 5 * 3 19
-(4 + 5) * 3 -27
2^2 4
2^2 + 5 9
25 8 3
25 Mod 8 1
Logische Ausdrücke und Operatoren
Neben den numerischen Ausdrücken und Operatoren gibt es auch logische Ausdrücke und Operatoren. Logische Ausdrücke können als Ergebnis nur True (wahr) oder False (falsch) sein. Die Schlüsselwörter in Visual Basic for Applications lauten deshalb auch True und False. Die folgenden logischen Operatoren können zur Verknüpfung logischer Ausdrücke verwendet werden:
Operator Bezeichnung
() Klammert einen Teilausdruck
Not Negation
And Und-Verknüpfung
Or Oder-Verknüpfung
Xor Exklusiv-Oder-Verknüpfung
Eqv Äquivalent-Verknüpfung
Imp Impliziert-Verknüpfung
Die Operatoren sind auch in dieser Tabelle wieder nach Prioritäten geordnet aufgelistet. Die folgenden Beispiele sollen Ihnen einen Eindruck vermitteln:
Ausdruck Ergebnis
True And True True
True And False False
True Or False True
Not False True
Not True False
True Xor True False
True Xor False True
5 Eqv 4 False
5 Eqv 5 True
Vergleichsoperatoren
Vergleichsoperatoren stellen eine Beziehung zwischen Ausdrücken her. Das Ergebnis einer Vergleichsoperation ist immer ein logischer Ausdruck, also entweder True (wahr) oder False (falsch). Vergleichsoperationen haben in der Programmierung einen besonderen Stellenwert, da sie für Entscheidungen herangezogen werden. Visual Basic for Applications kennt die folgendenVergleichsoperatoren:
Vergleichsoperator Bezeichnung
= Gleichheit
<> Ungleich
< Kleiner
> Größer
<= Kleiner oder Gleich
>= Größer oder Gleich
Alle Vergleichsoperatoren haben die gleiche Priorität. Die Auswertung der Ausdrücke erfolgt von links nach rechts. Sie können aber auch hier durch Klammern eine bestimmte Reihenfolge erzwingen. Die folgende Tabelle gibt wieder einige Beispiele für die Anwendung von Vergleichsoperatoren.
Ausdruck Ergebnis
4 = 8 False
5 > 2 True
15 > 8 And 7 < 9 True
10 <> 20 True
„N„ < „J„ False
i <= 10 True, falls i kleiner 11 ist, ansonsten False
Zeichenfolgen und deren Operatoren
Visual Basic for Applications unterstützt nicht nur numerische und logische Ausdrücke und Operatoren, sondern auch Operationen die sich auf Zeichenfolgen beziehen. Zeichenfolgen werden im englischen Sprachraum als Strings bezeichnet, deshalb wird Ihnen dieser Begriff auch häufig begegnen. Zeichenfolgen werden bei der Programmierung grundsätzlich in Anführungszeichen angegeben. Die Zeichenfolge darf dabei alle Zeichen enthalten. Falls Sie auch einmal Anführungszeichen in Ihrem Text verwenden müssen, dann werden diese durch zwei aufeinanderfolgende Anführungszeichen dargestellt, wie dies im folgenden Beispiel deutlich wird.
Print „Das ist eine Zeichenfolge.„
Print „Das Wort „„Zeichenfolge„„ in Anführungszeichen.„
Zeichenfolgen können über den &-Operator miteinander verknüpft werden. Das heißt, Zeichenfolgen werden mit Hilfe dieses Operators verlängert, wie dies in der folgenden Tabelle dargestellt ist.
Ausdruck Ergebnis
„Hello„ Hello
„Hello„ & „World„ HelloWorld
„Hello„ & „ „ & „World„ Hello World
Manchmal muß eine Zeichenfolge über mehrere Zeilen verteilt werden, dazu dient der Parameter vbCrLf. Dieser veranlaßt einen Zeilenumbruch an der Stelle an der er eingefügt wurde. Besonders bei Hinweis-Dialogfeldern wird man häufig zu diesem Parameter greifen müssen, deshalb hier ein Beispiel dazu.
Sub ZweizeiligMeldungAusgeben()
‚
‚ Gibt eine zweizeilige Meldung in einer Message Box aus.
‚
Beep
MsgBox „Dieser Text wird in der Message“ & vbCrLf & „Box zweizeilig dargestellt.“, vbInformation, „VBA-Beispiel“
End Sub
Message Box mit zweizeiligem Text.
Wird das obige Beispiel ausgeführt erscheint auf dem Bildschirm das folgende kleine Dialogfeld.
Das Dialogfeld mit zweizeiligem Text.
Bei Zeichenfolgen können die gleichen Vergleichsoperatoren angewendet werden wie bei den logischen Operatoren. Dabei wird bei den Operatoren <, >, >= und <= die Reihenfolge der Buchstaben im Alphabet berücksichtigt. Beispielsweise ist das Ergebnis des Vergleichs
Print „L“ > „K“
True, da der Buchstabe L im Alphabet dem Buchstaben K folgt. Der Gleichheitsoperator vergleicht zwei Zeichenfolgen auf Gleichheit unter Berücksichtigung der Groß- und Kleinschreibung.
Print „Hallo“ = „Hallo“
Das Ergebnis ist True, da beide Zeichenfolgen exakt identisch sind.