Daten in und aus Prozeduren abrufen

Jedes Datenelement wird mit einem Argument an Ihre Prozeduren übergeben. Argumente dienen als Platzhalter für die Daten, die Sie an Ihre Prozedur übergeben möchten. Sie können für Ihre Argumente jeden beliebigen gültigen Variablennamen verwenden. Wenn Sie eine Prozedur mit der Sub-Anweisung oder der Function-Anweisung erstellen, müssen nach dem Namen der Prozedur Klammern eingefügt werden. Alle Argumente werden in diesen Klammern durch Kommas getrennt platziert. Im folgenden Beispiel ist fDegrees ein Platzhalter für den Wert, der an die Celsius-Konvertierungsfunktion übergeben wird.

Das folgende Beispiel veranschaulicht die Verwendung zum Abrufen von Daten aus der Prozedur:

Beispiel 1:

Function Celsius(fDegrees)
   Celsius = (fDegrees - 32) * 5 / 9
End Function

Zum Abrufen von Daten aus einer Prozedur müssen Sie eine Function-Instanz verwenden. Beachten Sie, dass eine Function-Prozedur einen Wert zurückgeben kann, eine Sub-Prozedur jedoch nicht.

Beispiel 2:

Function Celsius(fDegrees)
        Celsius = (fDegrees - 32) * 5 / 9   ' Converts Fahrenheit to Celsius.
End Function

Sub ConvertTemp()
        Dim temp, celsiusTemp
        temp = 70
        celsiusTemp = Celsius(temp)   ' Calls the function and stores the result.
'celsiusTemp has the converted temperature.
End Sub
Call ConvertTemp()

Beispiel 3:

Function Add(a, b)
    Add = a + b    ' Returns the sum of a and b.
End Function

Sub ShowAddition()
    Dim result
    result = Add(5, 10)    ' Calls the function and stores the result.
    'Here result is 15
End Sub
Call ShowAddition()

Beispiel 4:

Function GetGreeting(name, timeOfDay)
    If timeOfDay = "Morning" Then
        GetGreeting = "Good morning, " & name & "!"
    ElseIf timeOfDay = "Afternoon" Then
        GetGreeting = "Good afternoon, " & name & "!"
    ElseIf timeOfDay = "Evening" Then
        GetGreeting = "Good evening, " & name & "!"
    Else
        GetGreeting = "Hello, " & name & "!"
    End If
End Function

Sub ShowGreeting()
    Dim name, timeOfDay, greeting
    name = "MyName"
    timeOfDay = "Morning"
    greeting = GetGreeting(name, timeOfDay)   
    'Print greeting here
End Sub
Call ShowGreeting()