VBA 常数(Const)

示例

如果您的值在应用程序中从未改变,则可以定义一个命名常量,并使用它代替文字值。

您只能在模块或过程级别使用Const。这意味着变量的声明上下文必须是类,结构,模块,过程或块,并且不能是源文件,名称空间或接口。

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

虽然指定常量类型被认为是一种很好的做法,但并非严格要求。不指定类型仍将导致正确的类型:

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

请注意,这是特定于常量的,与不指定类型会导致Variant类型的变量形成对比。

虽然可以将常量显式声明为String,但是无法使用固定宽度的字符串语法将常量声明为字符串

'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"