Function-Prozeduren

Eine Function-Prozedur ist eine Reihe von BSL-Anweisungen, die von den Function- und End Function-Anweisungen umschlossen sind. Eine Function-Prozedur ähnelt einer Sub-Prozedur, kann aber auch einen Wert zurückgeben. Eine Function-Prozedur kann Argumente annehmen (Konstanten, Variablen oder Ausdrücke, die von einer aufrufenden Prozedur an sie übergeben werden). Wenn eine Function-Prozedur keine Argumente enthält, muss ihre Function-Anweisung eine leere Klammer enthalten. Eine Function-Instanz gibt einen Wert zurück, indem sie seinem Namen in mindestens einer Anweisung der Prozedur einen Wert zuweist. Der Rückgabetyp einer Function-Prozedur ist immer der Datentyp "Variant".

Im folgenden Beispiel berechnet die Celsius-Funktion Grad Celsius aus Grad Fahrenheit. Wenn die Funktion über die Sub-Prozedur ConvertTemp aufgerufen wird, wird eine Variable mit dem Argumentwert an die Funktion übergeben. Das Ergebnis der Berechnung wird an die aufrufende Prozedur zurückgegeben und in einem Meldungsfeld angezeigt.

Das folgende Beispiel veranschaulicht die Verwendung der Function-Prozeduren:

Beispiel 1:

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

Beispiel 2:

Function AddNumbers(a, b)
        AddNumbers = a + b   ' The function returns the sum of a and b.
End Function

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

Beispiel 3:

Function CalculateRectangleArea(length, width)
        If length <= 0 Or width <= 0 Then
                CalculateRectangleArea = "Invalid dimensions"   ' Returns an error message for invalid dimensions.
        Else
                        CalculateRectangleArea = length * width   ' Returns the area of the rectangle.
        End If
End Function

Sub ShowRectangleArea()
        Dim length, width, area
        length = 4
        width = 3
        area = CalculateRectangleArea(length, width)   ' Calls the function and stores the result.
        'The area of the rectangle is 12
End Sub
Call ShowRectangleArea()