VBA 常量

常量直接表示相应类型的数据,可以直接使用,通常用作表达式与函数参数。

常用类型的常量如下:


1 字符串常量

字符串常量通过双引号表示。

"Hello,VBA" 
"小步教程网址:xiaobuteach.com"

控制台中输出字符串常量。

Sub string1()
  Debug.Print "小步教程,VBA"
End Sub

转义字符"

字符串含有特殊字符双引号"时,通过"进行转义。

Sub string2()
  Debug.Print """小步教程"",VBA"
End Sub

运行效果如下。

VBA 转义字符"


VBA没有字符常量

其它语言中有通过单引号表示字符,VBA没有字符常量。VBA中的单引号表示注释。


2 整数常量

整型常量直接数值表示。例:

2023
6
12

控制台中输出整数常量。

Sub int1()
  Debug.Print 2023
End Sub

3 小数常量

小数常量直接用小数表示。例:

2023.61

控制台中输出小数常量。

Sub double1()
  Debug.Print 2023.16
End Sub

4 布尔常量

布尔常量存在两个值:True、False,表示真假。

控制台中输出True。

Sub boolean1()
  Debug.Print True
End Sub

5 日期常量

日期常量的格式: #月/日/年# 。

例如:2023年6月12日 在VBA中表示为: #6/12/2023#

如果编码时,输入#2023/6/12#,保存时VBA会自动转化为:#6/12/2023#

控制台中输出日期。

Sub date1()
  Debug.Print #6/12/2023#
End Sub

6 TypeName查看各常量的数据类型

TypeName函数用于查看数据的类型。

语法:

TypeName(数据)

示例

Sub getDataType()
  Debug.Print TypeName("小步教程,VBA")  '输出 String
  Debug.Print TypeName(2023)       '输出 Integer
  Debug.Print TypeName(2023.61)      '输出 Double
  Debug.Print TypeName(True)       '输出 Boolean
  Debug.Print TypeName(#6/12/2023#)    '输出 Date
End Sub

运行结果如下:

VBA TypeName

问题:为什么VBA有的地方用小括号?有的地方不用小括号?

有返回值时为函数Function,调用时需小括号。

无返回值时为过程Sub,调用时不需小括号。


7 系统内置常量

系统中包含内置常量,特别是以vb开头的常量,用于各函数的参数。

以MsgBox为例

MsgBox "系统常量演示.from 小步教程 xiaobuteach.com", vbOKOnly

vbOkOnly表示仅显示 确定按钮。

img

vbOkOnly的值实际为整数0,通过常量提高代码的编写与阅读。

MsgBox "系统常量演示.from 小步教程 xiaobuteach.com", 0

运行效果相同。推荐使用常量方式。


MsgBox "系统常量演示.from 小步教程 xiaobuteach.com", vbOKCancel

vbOkCancel表示显示确定与取消两个按钮。

VBA MsgBox

vbOKCancel的值为整数1。

MsgBox "系统常量演示.from 小步教程 xiaobuteach.com", 1

运行效果相同。推荐使用常量方式。