VBA 学习笔记1 基本语法
2020-02-20 本文已影响0人
赵阳_c149
数据类型
VBA公有12种数据类型,具体见下表,此外用户还有可以根据以下类型用Type自定义数据类型
数据类型 | 类型 | 标识符 | 字节 |
---|---|---|---|
字符串 | String | $ | 字符长度(0-65400) |
字节型 | Byte | 无 | 1 |
布尔型 | Boolean | 无 | 2 |
整数型 | Long | & | 4 |
单精度型 | Single | ! | 4 |
双精度型 | Double | # | 8 |
日期型 | Date | 无 | 8,公元100/1/1-9999/12/31 |
货币型 | Currency | @ | 8 |
小数点型 | Decimal | 无 | 14 |
变体型 | Variant | 无 | 以上任意类型,可变 |
对象型 | Object | 无 | 4 |
变量与常量
VBA允许但是不建议使用为定义的变量,默认是变体变量。
Dim 变量 As 类型 '定义为局部变量
Private 变量 As 类型 '定义为私有变量
Public 变量 As 类型 '定义为公有变量
Global 变量 As 类型 '定义为局部变量
Static 变量 As 类型 '定义为静态变量
注释
注释语句是用来说明程序中某些语句的功能和作用;VBA中有两种方法标识为注释语句。
- ' 单引号
' 定义全局变量;
可以位于别的语句之尾,也可单独一行
- Rem
Rem 定义全局变量
只能单独一行
sub过程和函数
sub过程和函数都是构成程序的一个模块,往往用来完成一个相对独立的功能。过程可以使程序更清晰、更具结构性。
sub 过程
Sub 过程的参数有两种传递方式:按值传递(ByVal)和按地址传递(ByRef)。
Sub password (ByVal x as integer, ByRef y as integer)
If y=100 then y=x+y else y=x-y
x=x+100
End sub
函数
函数实际是实现一种映射,它通过一定的映射规则,完成运算并返回结果。参数传递也两种:按值传递(ByVal)和按地址传递(ByRef)。
Function password(ByVal x as integer, byref y as integer) as boolean
If y=100 then y=x+y else y=x-y
x=x+100
if y=150 then password=true else password=false
End Function
区别
- 返回值
sub 过程:没有返回值
函数:有返回值 - 调用方法
- sub过程
Call password(x_val, y_ref)
- 函数
Dim rel As Boolean
rel = password(v_val, y_rel)