Calling Functions in VB & VBA: Syntax, Examples, & More

Are you confused about calling function procedures in Visual Basic and VBA? When you call a function, its statements run beginning with the first executable after the "Function" statement until "End Function," "Return," or "Exit Function" is encountered. Once you learn the proper syntax for call statements and check out some helpful examples, it will be incredibly easy to call functions from anywhere in your program. This minHour tutorial will teach you easy ways to call functions in VB and VBA.

Calling a Function Syntax

The syntax for calling a function in VB and VBA is lvalue = functionName (argument1, argument2).

If there is more than one argument (like in this example), you’ll separate the arguments with commas.

  • You must provide values for all arguments that aren’t optional. But if there are no arguments, you can omit the parentheses or just leave them blank ().
  • When you call a function, its statements run beginning with the first executable statement after the Function statement until End Function, Return, or Exit Function is encountered.
  • Unlike when calling a subroutine, you usually won’t need to include the Call keyword when calling a function. If you use the Call keyword, no value will be returned.
  • If you’re using VBA in a cell within an Excel spreadsheet, the syntax is =functionName(argument1, argument2). If you’re writing code in the Excel VB editor, you’ll use the standard syntax. But in a cell, you’ll need to preface the call with an equals sign as you would when writing a formula.

Function Calling Examples

In this example, we’ll write a function that finds the hypotenuse of a right triangle.

Then, we’ll call that function to find the hypotenuse for a triangle if one of the lines is 2.3.

  • First, let’s create the function.Function hypotenuse(ByVal side1 As Single, ByVal side2 As Single) As SingleReturn Math.Sqrt((side1 ^ 2) + (side2 ^ 2))End Function
  • And here’s how we’d call the function if one side is 2.3. Dim testLength, testHypotenuse As SingletestHypotenuse = hypotenuse(testLength, 2.3)

We can also call functions using expressions.

In this example, we’ll call the MsgBox function, which displays a message box to the user and accepts input. There are 5 possible named arguments for MsgBox in Visual Basic and VBA—prompt, buttons, title, helpfile, and context. We want to pass two arguments—one to display a message, and another to display yes and no buttons:Dim intResponse As IntegerintResponse = MsgBox(“Are you sure you want to proceed?”, vbYesNo)If intResponse = vbYes Then EndEnd If

Now we’ll create a function that adds two numbers together.

First we’ll write a function called Add, and then we’ll call the function to add the numbers 32 and 64.

  • First, here’s the function:Function Add(ByVal x As Integer, ByVal y As Integer) As Integer Dim Res as integer Res = x + y Add = ResEnd Function
  • Now, let’s call the function in a subroutine to add our numbers:Sub Form_Load() Dim a As Integer Dim b As Integer Dim c As Integer a = 32 b = 64 c = Add(a, b) MsgBox (“Sum is : ” & c)End Sub

Tips

  • Functions are public by default, so you can call them from anywhere in the program that has access to its containing class, module, or structure.

Leave a Comment