Scope and Lifetime

Dim is not the only way to declare a variable. The full list of declaration keywords is shown in Table 2-6.

Table 2-6. Visual Basic declaration statements

Statement

Use to declare

Available

Dim

A variable with the default scope

Inside or outside a procedure

Public

A variable or procedure that is available from other modules or classes

Outside a procedure only

Private

A variable or procedure that is not available from other modules or classes

Outside a procedure only

Static

A variable that retains its value between procedure calls

Inside a procedure only

Which statement you use to declare a variable and where you declare it determines the scope and lifetime of that variable. Scope is the range of places from which a name is visible. Dim, Public, and Private are statements that specify scope. Lifetime is how long Visual Basic retains the value of a variable; Static specifies lifetime.

There are three levels of scope in a Visual Basic project:

  • Local variables are declared with Dim inside a procedure and are visible only from within that procedure.

  • Module-level variables are declared outside of a procedure with Dim or Private and are visible only from all procedures within that module or class.

  • Global variables are declared outside of a procedure with Public and are visible from all procedures in all modules and classes within the project.

Figure 2-10 illustrates the different levels of scope within a Visual Basic project.

Tip

It’s a common practice ...

Get Programming Excel with VBA and .NET now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.