Understanding Visual Basic syntax

The syntax in a Visual Basic Help topic for a method, function, or statement shows all the elements necessary to use the method, function, or statement correctly. The examples in this topic explain how to interpret the most common syntax elements.

Activate method syntax

object.Activate

In the Activate method syntax, the italic word "object" is a placeholder for information you supply—in this case, code that returns an object. Words that are bold should be typed exactly as they appear. For example, the following procedure activates the second window in the active document.

Sub MakeActive() 
    Windows(2).Activate 
End Sub

MsgBox function syntax

MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])

In the MsgBox function syntax, the italic words are named arguments of the function. Arguments enclosed in brackets are optional. (Do not type the brackets in your Visual Basic code.) For the MsgBox function, the only argument you must provide is the text for the prompt.

Arguments for functions and methods can be specified in code either by position or by name. To specify arguments by position, follow the order presented in the syntax, separating each argument with a comma, for example:

MsgBox "Your answer is correct!",0,"Answer Box" 

To specify an argument by name, use the argument name followed by a colon and an equal sign (:=), and the argument's value. You can specify named arguments in any order, for example:

MsgBox Title:="Answer Box", Prompt:="Your answer is correct!" 

The syntax for functions and some methods shows the arguments enclosed in parentheses. These functions and methods return values, so you must enclose the arguments in parentheses to assign the value to a variable. If you ignore the return value or if you don't pass arguments at all, don't include the parentheses. Methods that don't return values don't need their arguments enclosed in parentheses. These guidelines apply whether you are using positional arguments or named arguments.

In the following example, the return value from the MsgBox function is a number indicating the selected button that is stored in the variable myVar. Because the return value is used, parentheses are required. Another message box then displays the value of the variable.

Sub Question() 
    myVar = MsgBox(Prompt:="I enjoy my job.", _ 
        Title:="Answer Box", Buttons:="4") 
    MsgBox myVar 
End Sub

Option Compare statement syntax

Option Compare { Binary | Text | Database }

In the Option Compare statement syntax, the braces and vertical bar indicate a mandatory choice between three items. (Do not type the braces in the Visual Basic statement). For example, the following statement specifies that within the module, strings will be compared in a sort order that is not case-sensitive.

Option Compare Text 

Dim statement syntax

Dim varname [([ subscripts ])] [ As type, ] [ varname [([ subscripts ])] [ As type ]] . . .

In the Dim statement syntax, the word Dim is a required keyword. The only required element is varname (the variable name).

For example, the following statement creates three variables: myVar, nextVar, and thirdVar. These are automatically declared as Variant variables.

Dim myVar, nextVar, thirdVar 

The following example declares a variable as a String. Including a data type saves memory and can help you find errors in your code.

Dim myAnswer As String 

To declare several variables in one statement, include the data type for each variable. Variables declared without a data type are automatically declared as Variant.

Dim x As Integer, y As Integer, z As Integer 

In the following statement, x and y are assigned the Variant data type. Only z is assigned the Integer data type.

Dim x, y, z As Integer 

The shorthand to declare x and y as Integer in the statement above is:

Dim x%, y%, z as Integer

The shorthand for the types is: % -integer; & -long; @ -currency; # -double; ! -single; $ -string

If you are declaring an array variable, you must include parentheses. The subscripts are optional. The following statement dimensions a dynamic array, myArray.

Dim myArray() 

See also

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.