VBA 常量
常量直接表示相应类型的数据,可以直接使用,通常用作表达式与函数参数。
常用类型的常量如下:
1 字符串常量
字符串常量通过双引号表示。
"Hello,VBA" 
"关关教程网址:dushare.cn"
 
控制台中输出字符串常量。
Sub string1()
  Debug.Print "关关教程,VBA"
End Sub
 
转义字符"
字符串含有特殊字符双引号"时,通过"进行转义。
Sub string2()
  Debug.Print """关关教程"",VBA"
End Sub
 
运行效果如下。

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有的地方用小括号?有的地方不用小括号?
有返回值时为函数Function,调用时需小括号。
无返回值时为过程Sub,调用时不需小括号。
7 系统内置常量
系统中包含内置常量,特别是以vb开头的常量,用于各函数的参数。
以MsgBox为例
MsgBox "系统常量演示.from ", vbOKOnly
 
vbOkOnly表示仅显示 确定按钮。

vbOkOnly的值实际为整数0,通过常量提高代码的编写与阅读。
MsgBox "系统常量演示.from ", 0
运行效果相同。推荐使用常量方式。
MsgBox "系统常量演示.from ", vbOKCancel
 
vbOkCancel表示显示确定与取消两个按钮。

vbOKCancel的值为整数1。
MsgBox "系统常量演示.from ", 1
 
运行效果相同。推荐使用常量方式。