Part | Description | |
WithEvents | Optional. Keyword specifying that varname is an object variable used to respond to events triggered by an ActiveX object. Valid only in class modules. You can declare as many individual variables as you like using WithEvents, but you can't create arrays with WithEvents. You can't use New with WithEvents. | |
varname | Required. Name of the variable; follows standard variable naming conventions. | |
subscripts | Optional. Dimensions of an array variable; up to 60 multiple dimensions may be declared. The subscripts argument uses the following syntax: | |
[lower To] upper [,[lower To] upper] . . . | ||
When not explicitly stated in lower, the lower bound of an array is controlled by the Option Base statement. The lower bound is zero if no Option Base statement is present. |
New | Optional. Keyword that enables implicit creation of an object. If you use New when declaring the object variable, a new instance of the object is created on first reference to it, so you don't have to use the Set statement to assign the object reference. The New keyword can't be used to declare variables of any intrinsic data type, can't be used to declare instances of dependent objects, and can't be used with WithEvents. |
type | Optional. Data type of the variable; may be Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (not currently supported), Date, String, (for variable-length strings), String * length (for fixed-length strings), Object, Variant, a user-defined type, or an object type. Use a separate As type clause for each variable being defined. |
Public NumberOfEmployees As Integer
Also use a Public statement to declare the object type of a variable. The following statement declares a variable for a new instance of a worksheet.
Public X As New Worksheet
If the New keyword is not used when declaring an object variable, the variable that refers to the object must be assigned an existing object using the Set statement before it can be used. Until it is assigned an object, the declared object variable has the special value Nothing, which indicates that it doesn't refer to any particular instance of an object.
You can also use the Public statement with empty parentheses to declare a dynamic array. After declaring a dynamic array, use the ReDim statement within a procedure to define the number of dimensions and elements in the array. If you try to redeclare a dimension for an array variable whose size was explicitly specified in a Private, Public, or Dim statement, an error occurs.
If you don't specify a data type or object type and there is no Deftype statement in the module, the variable is Variant by default.
When variables are initialized, a numeric variable is initialized to 0, a variable-length string is initialized to a zero-length string (" "), and a fixed-length string is filled with zeros. Variant variables are initialized to Empty. Each element of a user-defined type variable is initialized as if it were a separate variable.
See Also
Array function, Const statement, Dim statement, Option Base statement, Option Private statement, Private statement, Property Get statement, Property Let statement, Property Set statement, ReDim statement, Set statement, Static statement, Type statement.
Specifics (Microsoft Access)
By default, module-level variables are private to that module. You must explicitly declare a public variable with the Public statement.
Module-level variables declared in standard modules with the Public statement are available to all other procedures in all modules in the current database and in referencing Microsoft Access databases. However, they are not available to any applications other than Microsoft Access.
If a public variable is declared in a module that contains the Option Private statement or in a class module, the variable is available to all procedures in the current database, but not to procedures in other databases.
Note The Public statement can't be used in a class module to declare a constant, a fixed-length string, or an array. In addition, if you include a Declare statement in a class module, you must precede it with the Private keyword. For more information about the Declare statement, see Declare Statement.
Example
This example uses the Public statement at the module level (General section) of a standard module to explicitly declare variables as public; that is, they are available to all procedures in all modules in all applications unless Option Private Module is in effect.
Public Number As Integer ' Public Integer variable.
Public NameArray(1 To 5) As String ' Public array variable.
' Multiple declarations, two Variants and one Integer, all Public.
Public MyVar, YourVar, ThisVar As Integer