Function Procedures

A Function procedure is a series of BSL statements enclosed by the Function and End Function statements. A Function procedure is similar to a Sub procedure, but can also return a value. A Function procedure can take arguments (constants, variables, or expressions that are passed to it by a calling procedure). If a Function procedure has no arguments, its Function statement must include an empty set of parentheses. A Function returns a value by assigning a value to its name in one or more statements of the procedure. The return type of a Function is always a Variant.

In the following example, the Celsius function calculates degrees Celsius from degrees Fahrenheit. When the function is called from the ConvertTemp Sub procedure, a variable containing the argument value is passed to the function. The result of the calculation is returned to the calling procedure and displayed in a message box.

The following example illustrates the use of the function procedures:

Example 1:

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

Example 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()

Example 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()