Die Addition »…+…« in VBA
- Direktbereich
? 1 + 1
2
? 1. + 1
2
? "1" + 1
2
? "1" + "1"
11
? "a" + "1"
a1
? "a" + 1
- ⚠ Laufzeitfehler '13': Typen unverträglich
- ⚠ Run-time Error '13': Type mismatch
Vereinfachte Syntax
- vereinfachte Syntax
Ausdruck
.----------. .-. .----------.
--->| Ausdruck |--->· + ·-->| Ausdruck |--->
'----------' '-' '----------'
Die Addition wird mit dem Pluszeichen »+« geschrieben. Sind A und a zwei Ausdrücke, so ist A +a wieder ein Ausdruck, die Summe von A und a. Dabei wird A auch Augend und a Addend genannt. (Diese vereinfachte Syntax bringt die Priorität und Assoziativität der Addition nicht richtig zum Ausdruck. Diese beiden werden daher weiter unten separat erklärt.)
Typanforderungen
Der Augend und der Addend kann jeden der bisher vorgestellten Typen haben.
Typ
Falls beide Operanden den Typ »Integer« haben, hat die Summe auch den Typ »Integer«. Andernfalls gilt: falls ein Operanden einen numerischen Typ hat und der andere numerisch ist, hat die Summe den Typ »Double«. Andernfalls gilt: falls beide Operanden den Typ »String« haben, hat die Summe auch den Typ »String«.
Wert
Bei der Auswertung einer Addition werden beide Operanden ausgewertet. Haben beide Operanden den Typ »String«, so ist das Ergebnis die Hintereinanderschreibung (Verkettung) der beiden Zeichenfolgen in der gegebenen Reihenfolge. Sind die beide Operanden numerisch, so ist das Ergebnis im allgemeinen ihre Summe.
Linksassoziativität
Ohne Klammerung wird bei mehr als einer Addition zuerst die am weitesten links stehende Summe ausgewertet.
- Direktbereich
? "1"+"1"+1
12
? 1+"1"+"1"
3
Das folgende Beispiel zeigt, daß die Addition des leeren Strings »""« einen Text nicht verändert.
- Direktbereich
? "+"+""+"+"
++
Priorität
Die Priorität der Addition ist kleiner als die der Division. Das heißt, daß ein Operandenausdruck, der direkt zwischen einem »+« und einem »/« steht, zu dem »/« gezählt wird.
In der folgenden Darstellung der bei der Auswertung eines Ausdrucks erfolgenden Operationen, gehört zu jeder Operation ein nach rechts weisender Pfeil. Der von der Operation ausgewertete Teilausdruck ist durch einen waagerechten Strich über ihm gekennzeichnet.
- Operationen bei der Auswertung von »2 + 4/2«
___
2 + 4/2 →
2 + 2_____
2 + 2 →
4- Direktbereich
? 2 + 4/2
4
Um eine spezielle gewünschte Zusammenfassung zu erreichen, können Ausdruckklammern verwendet werden.
Operationen bei einer Auswertung mit Ausdruckklammern:
- Operationen bei der Auswertung von »( 2 + 4 )/2«
_________
( 2 + 4 )/2 →
6 /2___
6/2 →
3- Direktbereich
? ( 2 + 4 )/2
3
Vorzeichen haben eine höhere Priorität als die Addition:
- Direktbereich
? -3+9
6
? -(3+9)
-12
Verkettung
Der Operator »&« dient zur Verkettung von Zeichenfolgen. Er ähnelt »+« insofern als er manchmal das gleiche Ergebnis hat.
- Direktbereich
? "a"+"b"
ab
? "a"&"b"
ab
Falls der Operator »&« auf eine Zahl angewendet wird, so wird diese in eine Zeichenfolge gewandelt.
- Direktbereich
? 2 & 3
23
? "a" & 2
a2
? 2 & "a"
2a
Falls der Operator »&« direkt vor oder direkt hinter einem Numerale steht, so ist er von diesem durch Leerraum zu trennen, da es andernfalls möglich ist, daß er als Teil des Numerales angesehen wird. Dies kann dann zu einer anderen Interpretation des Ausdrucks führen.
Die Priorität der Verkettung ist niedriger als die der Addition.
? 4 & 3 + 2
45
Priorität
- Priorität und Assoziativität der bisher behandelten Operatoren
() Eingeklammerter Ausdruck
+ - Unaere vorangestellte Operatoren
/ Division
+ Addition
& Verkettung
Übungsfragen
? Ausdrücke
Welcher der folgenden Ausdrücke hat denselben Wert wie »1 / 2+3«?
- »1/( 2+3 )« Anton
- »( 1/2 )+ 3« Berta
? Ausdrücke
Welche Ausgabe erzeugt die folgende Eingabe?
? 1/2 + 1/2
Welche Ausgabe erzeugt die folgende Eingabe?
? 1 +( "1" + "1" )
Übungsaufgaben
/ Terme
Die in der Mathematik vorkommenden Schreibweisen für Werte werden Terme genannt. In VBA verwendet man keine Terme. Die Ausdrücke von VBA haben aber Ähnlichkeit mit Termen. Viele Terme lassen sich auch als Ausdruck schreiben und umgekehrt.
Schreiben Sie möglichst kurze Ausdrücke für die folgenden Terme, ohne vorher irgendwelche Teile der Terme im Kopf auszurechnen. Die Werte der Ausdrücke sollten den mathematischen Werten der vorgegebenen Terme möglichst nahe kommen, also den Werten, die man in der Grundschule als Werte der Terme ansehen würde.
- Term (Ein Halb plus drei Viertel, erwartete Ausgabe: »1.25«)
1 3
--- + ---
2 4- Term (Drei plus Vier im Zähler und Fünf plus Sechs im Nenner, erwartete Ausgabe: »0.6363636363636364«)
3 + 4
---------
5 + 6
/ Beschriftung einer Ausgabe
Berechnen Sie mit VBA die Summe 2+3 (diese soll nicht im Kopf ausgerechnet werden) und geben Sie das Ergebnis dann mit dem Text »2 + 3 = « (acht Zeichen) davor und dem Text ».« (ein Zeichen) dahinter aus.