各种编程语言里都有常量和变量。常量,即固定不变的值;变量,即随时变化的值。
常量的使用,最大的作用是增加可读性和减少人为错误。
而理解和应用变量,是学习任何编程语言入门的第一步。
常量和变量,都可以简单理解为内存地址的命名。
一、声明前缀
Dim, Public, Private, Static, Global
Dim
Dim相当于Private
2.Public
表示声明的常量、变量是全局的。全局,顾名思义,就是在其他模块可以直接访问。
本文最后一节,会提供一个基本覆盖本文知识点的样例。
3.Private
表示声明的常量、变量是私有的。私有,顾名思义,就是在其他模块不可以访问。
4.Static
表示声明的变量是静态的。特征是在过程调用之间仍能保持其值的变量的数据类型。
不建议使用,有兴趣的可以看VBA的内置案例。
5.Global
这是一个老版本的声明前缀,为了兼容性,VB6/VBA6/VBA7里也保留了。
仅能用于标准模块(Module),效果等同于Public。
批注:①“Dim”的由来
以上5个跟变量、常量相关的声明中,
Public/Private/Static/Global都可以顾名思义,很好记忆。但是Dim是什么意思呢?
原来是这样,在早期版本的BASIC语言中,Dim是为了声明数组的维数(Dimension),后期的BASIC语言中,由于兼容性原因,就沿用了最初的用词。
② Public/Private/Static可以作为修饰符,声明Sub、Function、Property。这个在后续章节解释。
③ Dim常用在过程级,Public/Private常用在模块级。
④ 部分术语释义:
VBA = Visual Basic for Application
BASIC = Beginner’s All-purpose Symbolic Instruction Code
二、数据类型
VBA的数据类型
1.上述取值范围,只需要记住Byte,Integer,String,Date的,然后知道Long的数量级(21亿),其他的数据类型基本不需要关注,确实需要时再查表也可以。
在VBA的代码编写界面,按F1,搜索“数据类型”,可以得到上述信息。
实际上,VBA入门只需要常翻常看Office VBA的自带帮助F1就足够了,不需要购买任何专业书籍。
2.数据类型的内存结构和存储方式,直接决定了他们的取值范围。
例如,Byte占用1个字节=8位(8个二进制位),能够用于存储的字符总数最多为2^8=256。所以,Byte的取值范围是0-255。以后有时间,我们再掰扯其他的数据类型。
自己多用指针配合一些内存查看工具多分析分析,会发现对计算机的理解会慢慢加深。
3.Decimal这个类型,不能用Dim dVar As Decimal得到
只能用Dim var As Variant
var = CDec(325)得到该类型
4.部分数据类型还有类型简写。
VBA类型简写助记口诀
三、常量
常量的前缀修饰符是Const(英文是Constant),常量可以是模块级,也可以是过程级的。
常量一旦设定,理论上在程序运行过程中都不能再修改(这也是常量存在的意义),并根据定义常量的作用域来调用。
四、变量
变量就像一个容器,可以放米也可以放水,可以放一升水、十升水,也可以啥都不放。
这里的米或者水,就是我们的变量类型;一升、十升、空,就是我们的变量的值。
五、示例
下面用一段简单的例子代码,来对本文做一个总结。
模块1
模块2