Rückgabewerte in VBA
Die folgende Eingabe gibt eine mehr oder weniger zufällig ausgewählte Double-Zahl zwischen 0 (einschließlich) und 1 (ausschließlich) aus.
- Direktbereich
? VBA.Math.Rnd()
0.7055475
Wenn der Aufrufausdruck »VBA.Math.Rnd()« in den Ausdruckrahmen geschrieben wird, so wird dadurch bestimmt, daß der auszugebende Wert bei der Ausführung der Eingabe von der Auswertung des Ausdrucks »VBA.Math.Rnd()« ermittelt werden soll.
Dieser Wert ergibt sich dann dadurch, daß gegen Ende des Aufrufvorgangs von der Funktion »VBA.Math.Rnd« ein Wert für diesen Aufrufausdruck festgelegt wird. Wegen dieser Festlegung eines Wertes nennt man diesen Vorgang ja auch die Auswertung (also die Ermittlung des Wertes) des Ausdrucks »VBA.Math.Rnd()«.
Bei der Auswertung eines Aufrufausdrucks wird die Funktion dieses Ausdrucks aktiviert, wir sagen auch: der Aufruf wird ausgeführt. Das bedeutet nichts anderes als daß diese Funktion nun bestimmt, was der Rechner tut. Daher sagt man auch, daß diese Funktion durch die Ausführung des Aufrufs die Kontrolle (über den Rechner) erhält.
Wird die Kontrolle über den Rechner nun von unserem Hauptprogramm an die Funktion »Rnd« übergeben, so kehrt die Kontrolle normalerweise nach einer Weile wieder aus dieser Funktion »Rnd« zurück. Die Kontrolle wird also von der aufgerufenen Funktion schließlich (an unseren Ausdruckrahmen) zurückgegeben.
Weil gleichzeitig mit dieser Rückkehr auch der Wert des Ausdrucks geliefert wird, sagt man auch, daß er zusammen mit der Kontrolle von der Operation zurückgegeben werde, und bezeichnet ihn auch als Rückgabewert. (Der Rückgabewert von »Rnd« wird danach von unserem Ausdruckrahmen ausgegeben.) Am Ende der Ausführung einer Funktion steht also die Rückgabe der Kontrolle und eines eventuellen Rückgabewertes an jene Stelle, von der aus diese Funktion aufgerufen wurde.
- »?« und »Rnd« bei der oben gezeigten Ausführung
.-------------------------------------.
| ?----------------. |
| | |
| V |
| .---------------. |
| | Rnd() | |
| '---------------' |
| | |
| | |
|<-----------------' |
| 0.7055475 |
| |
'-------------------------------------'- Übergabe und Rückgabe der Kontrolle zur Laufzeit mit Wertrückgabe
.-------------------------------------.
| Hauptprogramm----. |
| | Übergabe der |
| V Kontrolle |
| .---------------. |
| | Unterprogramm | |
| '---------------' |
| | Rückgabe der |
| | Kontrolle |
|<-----------------' |
| Rueckgabewert |
| |
'-------------------------------------'
In dem folgenden Beispiel einer Auswertung des Ausdrucks »VBA.Math.Rnd()« wurde als auszugebender Wert beispielsweise »0.533424« festgelegt, also „zurückgegeben“. Der Rückgabewert ist also »0.533424«.
- Direktbereich
? VBA.Math.Rnd()
0.533424
In dem folgenden Protokoll einer Auswertung des Ausdrucks »java.lang.Math.random()« ist abzulesen, daß bei der protokollierten Auswertung als auszugebender Wert zur Laufzeit beispielsweise »0.5795186« festgelegt, also „zurückgegeben“ wurde. Diesmal ist der Rückgabewert »0.5795186«.
- Direktbereich
? VBA.Math.Rnd()
0.5795186