If you have a value that never changes in your application, you can define a named constant and use it in place of a literal value.
You can use Const only at module or procedure level. This means the declaration context for a variable must be a class, structure, module, procedure, or block, and cannot be a source file, namespace, or interface.
Public Const GLOBAL_CONSTANT As String = "Project Version #1.000.000.001" Private Const MODULE_CONSTANT As String = "Something relevant to this Module" Public Sub ExampleDeclaration() Const SOME_CONSTANT As String = "Hello World" Const PI As Double = 3.141592653 End Sub
Whilst it can be considered good practice to specify Constant types, it isn't strictly required. Not specifying the type will still result in the correct type:
Public Const GLOBAL_CONSTANT = "Project Version #1.000.000.001" 'Still a string Public Sub ExampleDeclaration() Const SOME_CONSTANT = "Hello World" 'Still a string Const DERIVED_CONSTANT = SOME_CONSTANT 'DERIVED_CONSTANT is also a string Const VAR_CONSTANT As Variant = SOME_CONSTANT 'VAR_CONSTANT is Variant/String Const PI = 3.141592653 'Still a double Const DERIVED_PI = PI 'DERIVED_PI is also a double Const VAR_PI As Variant = PI 'VAR_PI is Variant/Double End Sub
Note that this is specific to Constants and in contrast to variables where not specifying the type results in a Variant type.
While it is possible to explicitly declare a constant as a String, it is not possible to declare a constant as a string using fixed-width string syntax
'This is a valid 5 character string constant Const FOO As String = "ABCDE" 'This is not valid syntax for a 5 character string constant Const FOO As String * 5 = "ABCDE"