(一)VBS常量和变量的命名规则和定义

【1】VBS常量名、变量名的命名规则如下:

(a)普通常量名、变量名的命名规则:
第一个字符必须是字母
后面的字符可以是字母、数字和下划线,不支持中文字符
字符的长度1~255
不能是vbs关键字和vbs内部函数名
不区分大小写

‘示例:vbs的普通常量名、变量名的命名规则
Dim X ‘后面是字母
Dim Y ‘后面是字母
Dim X123 ‘后面是字母+数字
Dim Y456 ‘后面是字母+数字
Dim X12_name ‘后面是字母+数字+下划线
Dim Y34_high ‘后面是字母+数字+下划线

(b)中括号常量名、变量名的命名规则:
中括号内的字符可以是ANSI或Unicode字符,可以是中文字符
但有几个特殊字符不支持:Chr(0) Chr(10) Chr(13) Chr(91) Chr(93)
中括号内的字符的长度为0~255(一个汉字算一个字符)
不区分大小写

‘示例:vbs的中括号常量名、变量名的命名规则
Dim [刘备] ‘中括号内是中文
Dim [If] ‘中括号内是vbs关键字
Dim [] ‘中括号内没有字符
Dim [ ] ‘中括号内是空格
Dim a ‘加中括号后仍视为同一个变量
Dim [b] ‘去掉中括号后仍视为同一个变量

[刘备] = “QQ”
[If] = 2014
[] = 7578
[ ] = “张飞”
a = “关羽”
[b] = “赵云”

MsgBox [陆游] & [If] & [] & [ ] & [a] & b

‘———————————————————————————————————–

【2】vbs常量,用Const语句定义

【3】vbs变量,用Dim语句、Private语句或Public语句定义
【4】数组变量还可以用ReDim语句定义

【5】不能在定义变量的同时给变量赋值

【6】定义变量时,不能指定变量的数据类型
【7】vbs只有一种数据类型Variant,所有刚定义的变量都是Empty子类型

【8】vbs的变量也可以不定义直接使用

(二)VBS常量、变量赋值:

【1】变量赋值为对象类型,必须用Set语句
【2】变量赋值为其它类型,不能用Set语句,直接用=

【3】vbs只有一种数据类型Variant,,包含17种子类型
同一个变量可以赋值为任意数据子类型

‘常量、变量定义赋值示例:

Const Teacher = “吴二桂” ‘定义常量

Dim blnFound ‘定义变量
Private lngDistance
Public sStudent1, sStudent2

blnFound = True ‘变量赋值
lngDistance = 20147578
sStudent1 = “李晓明”
sStudent2 = “张大刚”

‘同一个变量可以赋值为任意数据子类型
blnFound = 1 ‘Integer类型
blnFound = “李晓明” ‘String类型
Set blnFound = Nothing ‘赋值为对象类型,必须使用Set语句

sStudent3 = “王六林” ‘未定义,直接使用的变量全局变量 局部变量 变量的作用域

‘———————————————————————————————————–
【4】vbs的变量可分为:“全局变量”和“局部变量”

在过程中定义的变量,过程外不可访问,称为“局部变量”或“过程级变量”
局部变量只在其定义的过程中可以访问,过程结束后,变量自动注销
即:
局部变量的作用域在过程内部,称为“局部作用域”
局部变量的存活期就是从定义变量开始到过程结束

在过程外定义的变量,整个脚本都可以访问,称为“全局变量”或“脚本级变量”
即:
全局变量的作用域是整个脚本,称为“脚本级作用域”
全局变量的存活期就是从定义变量开始到脚本运行结束

不同的过程内可以有同名的局部变量,互不干扰

局部变量可以和全局变量同名,此时遵循局部变量优先原则
即:局部作用域内优先使用局部变量

以上描述,同样适用于常量和未定义直接使用的变量

‘全局变量 局部变量示例:
Const N = “刘玄德” ‘全局常量

Dim s ‘全局变量

s = “关云长”

Sub test()
Const N = “曹孟德” ‘局部常量
Dim s ‘局部变量
s = “许仲康”
m = “荀文若” ‘未定义,直接使用的局部变量
Msgbox “局部变量 s = ” & s & vbLf & _
“局部变量 m = ” & m & vbLf & _
“局部常量 N = ” & N
End Sub

test()

m = “庞士元” ‘未定义,直接使用的全局变量

Msgbox “全局变量 s = ” & s & vbLf & _
“全局变量 m = ” & m & vbLf & _
“全局常量 N = ” & NOption Explicit 语句

‘———————————————————————————————————–
【5】Option Explicit语句,强制规定“变量必须先定义再使用”
如果要使用该语句,必须在vbs文件的第一行
几百几千行代码的大型的vbs,一般要使用该语句,避免变量名拼写错误公有变量 私有变量

【6】在多窗口多模块的编程语言中:
公有的变量、常量和过程可以被其它模块访问
私有的变量、常量和过程只能在本模块使用

而vbs是单模块的脚本语言,所以在全局环境,无所谓公有私有
即:在全局环境,Public和Private的效果是完全一样的

在vbs的“类”的内部
公有的变量和过程可以被“类”的外部访问
私有的变量和过程不可以被“类”的外部访问
所以在vbs的“类”的内部需要区分Public和Private

如果未明确指定Public和Private,则默认为Public

Private语句定义私有变量
Public语句和Dim语句定义公有变量

“类”的内部不能定义常量’公有变量 私有变量

‘vbs的“类”的示例:
Dim s

Class t
Private a ‘私有变量
Public b ‘公有变量
Dim c ‘公有变量
End Class

Set s = New t
MsgBox s.b ‘如果调用s.a就报错非标准变量名

有一些单词默认已有赋值,不可以用作变量名
但可以用Dim语句定义后使用

比如:vbs常数,比如vbBlack
语句名称,比如Randomize
Wsh (默认为WScript对象)
Err (vbs内置的全局对象,用于处理错误信息)
当然这么做会引起混乱,应避免使用非标准变量名

‘非标准变量名示例:
Dim vbBlack, Randomize, Wsh, Err

vbBlack = “刘备”
Randomize = “关羽”
Wsh = “张飞”
Err = “赵云”

MsgBox vbBlack & Randomize & Wsh & Err

Views: 39

Hi, I’m vbsgirl

办公职员