VB语法规范
一。数据类型
Byte 1字节 无符号
Interger 2 字节
Long 4 字节
Float 4字节
Double 8字节
String
Date
Boolean
Currency
Variant
2.变长字符串和定长字符
系统默认初始值为空字符串;
变长字符串:dim str as Strring
定长字符串:dim str as String*30 最多64K字符
3.逻辑型数据
系统默认为False;
当布尔型转为整形时 True为-1 False 为0;
其它型转化为布尔型 非0为True 0为False;
4.日期型数据
文字日期包含在一对“#"之间,如#4 Sep# #May 23.2002#等;
在日期型数据中,不论将年、月、日如何排列,用何种分隔符,系统会自动将其转化为由数字表示的”月/日/年“
5。对象类型
默认值为nothing,用SET语句指定一个声明的对象变量去引用对象。
6.变体类型
所有未定义的变量的默认类型。用VarType()返回的值可以确定具体数据类型。
二。常量
三种:直接常量(字面值),自定义符号常量,系统常量
(1)自定义符号常量
Const 符号常量名[As <类型>]=<表达式>
要使常量在整个应用程序中有效,在标准模块中地声明段中进行声明,并且在Const之前加Public。对于窗体模块或类模块,则不能加
Public.
三。变量
1.命名约定
以字母开始,后跟数字、字段和下划线
同一作用域中变量名不能重复
变量名不区分大小定。
2.声名变量
隐式声明:就是在使用一个变量这前不专门声明而直接使用,变量类型默认为变体类型。
显示声明:为每个变量必须事先声明才能使用。可以指定类型也可不指定,若不指定也是变体类型。
3.变量作用域
普通局部变量(过程变量):只能在声明的过程中使用,过程执行分配空间,过程完成后释放空间
Dim 变量名[As 数据类型名]
静态局部变量(过程变量):只能在声明的过程中使用,应用程序启动时分配空间,应用程序结束时释放空间
Static 变量名 [As 数据类型名]
模块变量:该模块中的所有过程都可以访问的变量,其它模块的过程不能访问此模块变量,应用程序启动时分配空间,应用程序结束时释放 空间
Private dim 变量名 [As 数据类型名]
注:Private和 dim是等效的,只是与过程变量区分。应用程序启动时分配空间,应用程序结束时释放 空间
全局变量:程序中的所有模块都可以对其访问。其它窗体模块访问此模块全局变量时要用 “窗体名称.变量名”格式。
Public 变量名 [As 数据类型名]
4.重名变量
一个模块不能声明重名的模块变量和全局变量
不同作用域的变量重名时,有效范围较小的变量会屏蔽有效范围大的变量;
在窗体模块的代码中,可以使用关键字"Me"来代替窗体名称。
四。运算符和表达式
1.算术运算符
/ 除 10/3=3.3333
\ 整除 10\3=3
Mod 取模 10 Mod 3=1
^乘方 2^3=8
2.不同数据类型转换
不同数据类型运算时,将范围小的类型转换为大的类型
Integer Long Single Double Currency
但当Long与Single运算时转换为Double
注:如果数据类型和数字字符串或布尔型运算时,则转化为数值型后再计算。
3.关系表达式
常见ASCII码的顺序
空格< 数字< 大写英文字符 <小定英文字符 <汉字
4.逻辑运算符
优先级 Not-> And-> Or-> Xor-> Eqv-> Imp
Eqv为等价运算符 A Eqv B值相同,则结果为真,否则为假
Imp 蕴含运算符 A Imp B,A真,B为假,结果为假,其它为真
5.字符串运算符和表达式
(1)字符串连接用+或&
(2)字符串比较 A Comp B
(3)字符串匹配 A Like B
B中可包含的匹配字符
? 任何一个字符
* 任意多个字符,可为0
# 任意一个数字
[多个字符] 方括号中的任何一个字符
[!多个字符] 非方括号中的任何一个字符
[字符1-字符2] 字符1-字符2范围内的一个字符
[!字符1-字符2] 非字符1-字符2范围内的一个字符
6.日期时间运算符
如果日期时间A加一个数值型B,会把A的日期部分加上B的整数部分表示天数算出新日期,再把A的时间部分加上B的小数部分计算出新时间。
7。对象比较运算符
对象型比较的运算符是is。如果两个比较的对象引用同一个对象,则为真。
五。用户自定义类型
该声明语句必须置于模块的声明部分;
在标准模块和类模块中用户定义类型可以为Public或 Private,在窗体模块中变量仅仅被声明为Private。
[Public |Private]Type 自定义数据类型名
成员名1 As 已有数据类型
。。。。。
End Type
例
Private Type BookInfo
Name As String*20
Author As String*4
Price As Currency
End Type
Dim book As BookInfo
book.Name="abc"
.....
六。VB书写规则
1.将单行语句分成多行
用续行符(一个空格后面跟一个下划线)将长语句分成多行。同一行内续行符后面不能加注释,语句续行符一般在运算符处断开,而且同一语句的多个续行之间不能有空行。
例:
Public Delcare Function GetComputerName Lib _
"kernel32" Alias ”GetComputerName" (ByVal lpBuffer As _
String nSize As Long) As Long
2.将多条语句合并到一行
例
Private a As Single:Private b As Single
之间用冒号隔开。
3.命名规范
用匈利牙命名法
数据类型 前缀
Interger int intNum
Long lng
Currency cur
Single sng
Double dbl
Boolean bln
Byte byt
Object obj
String str
Variant vnt
作用域前缀
作用域 前缀
全局 g gIntNum(g_IntNum是不是更好些?)
模块 m mIntNum
局部 无 intNum
七。特殊语句和方法
1.End 语句使正在运行的程序终止运行
2.Beep语句使执行该语句时会使计算机喇叭响一声
3.Print 方法
它在窗体、图片框、立即窗口、打印机等对象中显示文本字符和表达式的值
[对象表达式.]Print[表达式表]
(1)"对象表达式"为窗体、图片框、立即窗口、打印机等对象,如果省略就在当前窗体输出。
(2)Print关键字可用"?"代替。
(3)"表达式表"由若干写在同一行上的表达式组成,可是算术表达式,字符串或关系表达式等,各表达式用逗号、分号或Tab、Spc函数间隔(可以混合使用的)
(4)一般情况下,Print方法后自动换行 ,为了仍在同一行上显示,可以在Print方法末尾加上分号、逗号或Tab函数。
(5)Print显示格式用分区格式和紧凑格式,当各表达式都用逗号分隔时,按打印区显示数据项,每隔14列开始一个打印区;当用分号作分隔符时,输出格式为紧凑格式,此时在每一个数值后面增加一个空格。
(6)Tab函数,Tab(n),其中数据值n为整数,表示在输出前把光标或打印头移到该列。通常最左边列号为1,如果当前的位置超过了n,嵵自动 移到下一行。当n大于行宽度时,显示位置为"n Mod 行宽",如果n<1,则把输出位置移到第一列。要输出的内容放在此函数后面,并用分号隔开,当在一个Print方法中有多个Tab函数时,每个 Tab函数对应一个输出项,各输出项用分号隔开。
(7)Spc函数。Spc(n),用此函数路过n个空格。
4.cls方法
用于清除图形和打印语句在运行时所产生的文本和图形。
八。语句
1.条件if...then语句
(1)单行形式的
例 if a<0 then print "a=”
(2)块形式的
例 if a<0 then
print a
end if
这里块形式的语句必须用end if
2.条件if...then...else
(1)单行形式的
例 if a<0 then Print a Else_
Print "ok“
(2)块形式的
例 if a=0 then
print a
else
print "ok"
end if
3.条件if...then...elseif
例 if a>0 then
print a
elseif a<0
print "ok"
end if
4.选择Select Case语句
格式 Select Case 表达式
Case 表达式结果1
处理
Case 表达式结果2
处理
[Case Else
处理](这个可以没有的)
End Select
”表达式“可以数值表达式或字符串表达式
Case后面的结果可以有以下几种
(1)数值型或字符型常量、变量或表达式。 例 Case 2;Case 1,2,3,4;Case "asdb";Case A;
(2)如果”表达式“的值在To的范围内就认为匹配,To左边的数值或字符应小于右边的数值或字符。例 Case A To F
(3)使用”Is"关键字与比较运算符表示一个范围,例如:Case Is>A,Case Is>"A",Case is>19等
(4)混合使用用这3种形式.Case A To F,32,Is>19
5.For...Next语句
格式:For 循环变量=初始值 To 终值 [Step 步长]
[循环体]
[Exit For]
[循环体]
Next 循环变量
例 for a=1 to 10
For b=1 to 10
For c=1 to 10
……
Next c,b,a ‘连续的next写法,注意循环变量的顺序
6.While…Wend语句
例:
While i<=100
S=2
Wend
7.do…loop
格式:直到型
Do
[语句]
[Exit Do]
Loop [While|Until 循环条件]
格式:当型
Do [While|Until 循环条件]
[语句]
[Exit Do]
Loop
8.For Each...Next语句
针对一个数组或集合中的每个元素,重复执行一组语句。
语法
For Each element In group
[statements]
[Exit For]
[statements]
Next [element]
For...Each...Next 语句的语法具有以下几个部分:
部分 描述
element 必要参数。用来遍历集合或数组中所有元素的变量。对于集合来说,element 可能是一个 Variant 变量、一个通用对象变量或任何特殊对象变量。对于数组而言,element只能是一个 Variant 变量。
group 必要参数。对象集合或数组的名称(用户定义类型的数组除外)。
statements 可选参数,针对 group 中的每一项执行的一条或多条语句。
9.程序跳出语句
(1)Exit Do:只能在Do…Loop中使用
(2)Exit For:只能在For…next或For Each…next中使用。
(3)Exit Function:跳出Function函数
(4)Exit Sub跳出Sub过程
(5)Exit Property:跳出Property过程

浙公网安备 33010602011771号