VB语法格式.docx

上传人:b****2 文档编号:18041424 上传时间:2023-08-07 格式:DOCX 页数:25 大小:27.01KB
下载 相关 举报
VB语法格式.docx_第1页
第1页 / 共25页
VB语法格式.docx_第2页
第2页 / 共25页
VB语法格式.docx_第3页
第3页 / 共25页
VB语法格式.docx_第4页
第4页 / 共25页
VB语法格式.docx_第5页
第5页 / 共25页
VB语法格式.docx_第6页
第6页 / 共25页
VB语法格式.docx_第7页
第7页 / 共25页
VB语法格式.docx_第8页
第8页 / 共25页
VB语法格式.docx_第9页
第9页 / 共25页
VB语法格式.docx_第10页
第10页 / 共25页
VB语法格式.docx_第11页
第11页 / 共25页
VB语法格式.docx_第12页
第12页 / 共25页
VB语法格式.docx_第13页
第13页 / 共25页
VB语法格式.docx_第14页
第14页 / 共25页
VB语法格式.docx_第15页
第15页 / 共25页
VB语法格式.docx_第16页
第16页 / 共25页
VB语法格式.docx_第17页
第17页 / 共25页
VB语法格式.docx_第18页
第18页 / 共25页
VB语法格式.docx_第19页
第19页 / 共25页
VB语法格式.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VB语法格式.docx

《VB语法格式.docx》由会员分享,可在线阅读,更多相关《VB语法格式.docx(25页珍藏版)》请在冰点文库上搜索。

VB语法格式.docx

VB语法格式

Call语句

描述

将控制权传递给Sub过程或Function过程。

语法

[Call]name[argumentlist]

Call语句语法有以下部分:

部分

描述

Call

可选关键字。

如果指定此关键字,则必须用括号把argumentlist括起来。

例如:

CallMyProc(0)

name

必选。

要调用的过程名。

argumentlist

可选。

传递给过程的变量、数组或表达式列表,用逗号分隔每一项。

说明

在调用过程时,不必使用Call关键字。

然而,如果使用Call关键字调用要求参数的过程,则必须用括号将argumentlist括起来。

如果省略Call关键字,那么必须也同时省略argumentlist参数两边的括号。

使用Call语法调用内部函数或使用用户自定义函数,函数返回值都会被放弃。

Const语句

描述

声明用于代替文字值的常数。

语法

[Public|Private]Constconstname=expression

Const语句的语法包含以下部分:

部分

描述

Public

可选。

该关键字用于在Script级中声明可用于所有Script中所有过程的常数。

不允许在过程中使用。

Private

可选。

该关键字用于在Script级中声明只可用在声明所在的Script中的常数。

不允许在过程中使用。

constname

必选。

常数的名称,根据标准的变量命名约定。

expression

必选。

文字或其他常数,或包括除Is外的所有算术操作符和逻辑操作符的任意组合。

说明

在默认情况下常数是公用的。

过程中的常数总是专有的,其可见性无法改变。

Script中,可用Private关键字来改变Script级常数可见性的默认值。

要在同一行中声明若干个常数,可用逗号将每个常数赋值分开。

用这种方法声明常数时,如果使用了Public或Private关键字,则该关键字对该行中所有常数都有效。

常数声明中不能使用变量、用户自定义的函数或VBScript内部函数(如Chr)。

按定义,它们不能是常数。

另外也不能从含有操作符的表达式中创建常数,即只允许使用简单常数。

在Sub或Function过程中声明的常数是该过程的局部常数。

在过程外声明的常数是声明所在的Script中的全局常数。

可以在任何使用表达式的地方使用常数。

注意常数可以使Script更具可读性,且易于修改。

在Script运行时,常数不会象变量那样无意中被改变。

Dim语句

描述

声明变量并分配存储空间。

语法

Dimvarname[([subscripts])][,varname[([subscripts])]]...

Dim语句的语法包含以下部分:

部分

描述

varname

变量的名称,符合标准变量命名约定。

subscripts

数组变量的维数,最多可以声明60维的数组。

subscripts参数使用以下语法:

upperbound[,upperbound]...

数组下界总是0。

说明

用Dim声明的Script级变量可用于Script中的所有过程,过程级变量只能用于过程中。

也可用带空圆括号的Dim语句来声明动态数组。

声明动态数组后,可在过程内使用ReDim语句来定义该数组的维数和元素。

如果试图重新定义在Dim语句中已经显式指定维数的数组,则会发生错误。

在初始化变量时,数值变量被初始化为0,字符串被初始化为零长度字符串("")。

提示在过程中使用Dim语句时,通常将Dim语句放在过程的开始处。

Do...Loop语句

描述

当条件为True时或条件变为True之前重复执行某语句块。

语法

Do[{While|Until}condition]

[statements]

[ExitDo]

[statements]

Loop

也可以使用下面的语法:

Do

[statements]

[ExitDo]

[statements]

Loop[{While|Until}condition]

Do...Loop语句语法有以下部分:

部分

描述

condition

数值或字符串表达式,其值为True或False。

如果condition为Null,则condition被当作False。

statements

当condition为True时被重复执行的一条或多条命令。

说明

ExitDo仅可以用在Do...Loop控制语句中,提供另一种退出Do...Loop的方法。

可以在Do...Loop语句中的任何位置放置任意个ExitDo。

ExitDo通常与条件判断语句(如If...Then)一起使用,将控制传递给紧随在Loop语句后面的语句。

当用于嵌套Do...Loop中的时候,ExitDo将控制传递给其所在循环的上一层嵌套循环。

Erase语句

描述

重新初始化固定大小数组的元素,并释放动态数组的存储空间。

语法

Erasearray

array参数是要清除的数组变量的名称。

说明

判断数组是固定长度数组(常规)还是动态数组是很重要的,这是因为Erase要根据数组的类型进行不同的操作。

Erase无需为固定大小的数组还原内存。

Erase按照下表设置固定数组的元素:

数组的类型

Erase对固定数组元素的影响

固定数值数组

将每个元素设置为0。

固定字符串数组

将每个元素设置为零长度字符串("")。

对象数组

将每个元素设置为特殊值Nothing。

Erase释放动态数组所使用的内存。

在程序再次引用该动态数组之前,必须使用ReDim语句来重新定义该数组变量的维数。

Exit语句

描述

退出Do...Loop、For...Next、Function或Sub代码块。

语法

ExitDo

ExitFor

ExitFunction

ExitSub

Exit语句的语法有以下几种形式:

语句

描述

ExitDo

提供一种退出Do...Loop语句的方法。

只能在Do...Loop语句中使用。

ExitDo将控制权转移到Loop语句之后的语句。

在嵌套的Do...Loop语句中使用时,ExitDo将控制权转移到循环所在位置的上一层嵌套循环。

ExitFor

提供一种退出For循环的方法。

只能在For...Next或ForEach...Next循环中使用。

ExitFor将控制权转移到Next之后的语句。

在嵌套的For循环中使用时,ExitFor将控制权转移到循环所在位置的上一层嵌套循环。

ExitFunction

立即从出现的位置退出Function过程。

继续执行调用Function的语句后面的语句。

ExitSub

立即从出现的位置退出Sub过程,继续执行调用Sub的语句后面的语句。

For...Next语句

描述

以指定次数重复执行一组语句。

语法

Forcounter=startToend[Stepstep]

[statements]

[ExitFor]

[statements]

Next

For...Next语句的语法包含以下部分:

部分

描述

counter

用做循环计数器的数值变量。

这个变量不能是数组元素或用户自定义类型的元素。

start

counter的初值。

end

counter的终值。

step

counter的步长。

如果没有指定,则step的默认值为1。

statements

For和Next之间的一条或多条语句,将被执行指定次数。

说明

step参数可以是正数或负数。

step参数值决定循环的执行情况,如下所示:

如果...则循环执行

正数或0

counter<=end

负数

counter>=end

当循环启动并且所有循环中的语句都执行后,step值被加到counter中。

这时,或者循环中的语句再次执行(基于循环开始执行时同样的测试),或者退出循环并从Next语句之后的语句继续执行。

提示在循环中改变counter的值,将会使程序代码的阅读和调试变得更加困难。

ExitFor只能用于ForEach...Next或For...Next结构中,提供另一种退出循环的方法。

可在语句中的任意位置放置任意个ExitFor语句。

ExitFor经常和条件判断语句一起使用(例如If...Then),并立即将控制权转移到Next之后的语句。

可以将一个For...Next循环放置在另一个For...Next循环中,组成嵌套循环。

每个循环中的counter要使用不同的变量名。

下面的结构是正确的:

ForI=1To10

ForJ=1To10

ForK=1To10

...

Next

Next

Next

ForEach...Next语句

描述

对数组或集合中的每个元素重复执行一组语句。

语法

ForEachelementIngroup

[statements]

[ExitFor]

[statements]

Next[element]

ForEach...Next语句的语法包含以下部分:

部分

描述

element

用来枚举集合或数组中所有元素的变量。

对于集合,element可能是Variant变量、通用Object变量或任意指定的Automation对象变量。

对于数组,element只能是Variant变量。

group

对象集合或数组的名称。

statements

对于group中的每一项执行的一条或多条语句。

说明

如果group中有至少一个元素,就会进入ForEach块执行。

一旦进入循环,便首先对group中第一个元素执行循环中的所有语句。

只要group中还有其他的元素,就会对每个元素执行循环中的语句。

当group中的没有其他元素时退出循环,然后从Next语句之后的语句继续执行。

ExitFor只能用于ForEach...Next或For...Next控制结构中,提供另一种退出循环的方法。

可在循环的任意位置放置任意个ExitFor语句。

ExitFor经常和条件判断语句一起使用(例如If...Then),并立即将控制权转移到Next之后的语句。

可以将一个ForEach...Next循环放置在另一个之中,组成嵌套式ForEach...Next循环。

但是每个循环的element必须是唯一的。

注意如果省略Next语句中的element,则程序仍会象已包含它一样继续执行。

如果Next语句在其相应的For语句之前出现,则会产生错误。

Function语句

描述

声明Function过程的名称、参数以及构成其主体的代码。

语法

[Public|Private]Functionname[(arglist)]

[statements]

[name=expression]

[ExitFunction]

[statements]

[name=expression]

EndFunction

Function语句的语法包含以下部分:

部分

描述

Public

表示Function过程可被所有Script中的所有其他过程访问。

Private

表示Function过程只可被声明它的Script中的其他过程访问。

name

Function的名称,遵循标准的变量命名约定。

arglist

代表调用时要传递给Function过程的参数的变量列表。

用逗号隔开多个变量。

statements

在Function过程的主体中执行的任意语句组。

expression

Function的返回值。

arglist参数包含下列语法和部分:

[ByVal|ByRef]varname[()]

部分

描述

ByVal

表示该参数按值传递。

ByRef

表示该参数按引用传递。

varname

代表参数变量的名称;遵循标准的变量命名约定。

说明

如没有显式指定使用Public或Private,则Function过程默认为公用,即它们对于Script中的所有其他过程是可见的。

Function中局部变量的值在对过程的调用中不被保留。

所有可执行代码必须包含于过程中。

不能在另一个Function或Sub过程中定义Function过程。

使用ExitFunction语句可以从Function过程中立即退出。

程序继续执行调用Function过程的语句之后的语句。

可在Function过程的任何位置出现任意个ExitFunction语句。

与Sub过程类似,Function过程是可以获取参数、执行一系列语句并改变其参数值的独立过程。

与Sub过程的不同之处是:

当要使用由函数返回的值时,可以在表达式的右边使用Function过程,这与内部函数的使用方式一样,例如Sqr、Cos或Chr。

在表达式中,可以通过使用函数名,并在其后用圆括号给出相应的参数列表来调用Function过程。

有关调用Function过程的详细信息,请参阅Call语句。

小心Function过程可以是递归的,即该过程可以调用自身以完成某个给定的任务。

但是,递归可能会导致堆栈溢出。

要从函数返回一个值,只需将值赋给函数名。

在过程的任意位置都可以出现任意个这样的赋值。

如果没有给name赋值,则过程将返回一个默认值:

数值函数返回0,字符串函数返回零长度字符串("")。

如果在Function中没有对象引用被指定给name(使用Set),则返回对象引用的函数将返回Nothing。

下面的样例说明如何给一个名为BinarySearch的函数赋返回值。

在此样例中,将False赋给了该函数名,表示没有找到某个值。

FunctionBinarySearch(...)

...

'未找到该值。

返回False值。

Iflower>upperThen

BinarySearch=False

ExitFunction

EndIf

...

EndFunction

在Function过程中使用的变量分为两类:

一类是在过程内显式声明的,另一类则不是。

在过程内显式声明的变量(使用Dim或等效方法)总是过程的局部变量。

被使用但没有在过程中显式声明的变量也是局部变量,除非在该过程外更高级别的位置显式声明它们。

小心过程可以使用没有在过程内显式声明的变量,但如果在Script级中任何定义的名称与之相同,则会发生名称冲突。

如果过程中使用的未声明的变量与另一个过程、常数或变量的名称相同,则会认为过程使用的是Script级的名称。

显式声明变量可以避免这类冲突。

可以使用OptionExplicit语句来强制显式声明变量。

小心VBScript可能会重新排列数学表达式以提高内部效率。

当Function过程修改数学表达式中变量的值时,应避免在同一表达式中使用该函数。

If...Then...Else语句

描述

根据表达式的值有条件地执行一组语句。

语法

IfconditionThenstatements[Elseelsestatements]

或者,使用块形式的语法:

IfconditionThen

[statements]

[ElseIfcondition-nThen

[elseifstatements]]...

[Else

[elsestatements]]

EndIf

If...Then...Else语句的语法包含以下部分:

部分

描述

condition

一个或多个下面两种类型的表达式:

数值或字符串表达式,其运算结果是True或False。

如果condition是Null,则condition被视为False。

形如TypeOfobjectnameIsobjecttype的表达式。

objectname是任何对象的引用,而objecttype则是任何有效的对象类型。

如果objectname是objecttype所指定的一种对象类型,则表达式为True;否则为False。

statements

如果condition为True时,执行的一条或多条(以冒号分开)语句。

condition-n

同condition。

elseifstatements

如果相关的condition-n为Ture时,执行的一条或多条语句。

elsestatements

如果前面没有condition或condition-n表达式为True时,执行的一条或多条语句。

说明

对于短小简单的测试,可以使用单行形式(第一种语法)。

但块形式(第二种语法)提供了比单行形式更强的结构化与适应性,比较容易阅读、维护及调试。

注意在单行语法中,可以执行多条语句作为If...Then判断的结果,但所有语句必须在同一行上并且以冒号分开,如下列语句所示:

IfA>10ThenA=A+1:

B=B+A:

C=C+B

当程序运行到If块(第二种语法)时,将测试condition。

如果condition是True,则执行Then之后的语句。

如condition是False,则每个ElseIf部分的条件式(如果有的话)会依次计算并加以测试。

当找到某个为True的条件时,则其相关的Then之后的语句会被执行。

如没有一个ElseIf语句是True(或没有ElseIf子句),则将执行Else之后的语句。

执行Then或Else之后的语句以后,将继续执行EndIf之后的语句。

Else和ElseIf子句都是可选的。

在If块中可以放置任意多个ElseIf子句,但是都必须在Else子句之前。

If块语句可以被嵌套,即被包含在另一个If块语句之中。

要判断某个语句是否是一个If块,可检查Then关键字之后是什么。

如果在Then的同一行之后还有其他非注释的内容,则此语句就是单行形式的If语句。

If块语句必须是某一行的第一条语句,并且必须以EndIf语句结束。

OnError语句

描述

启动错误处理程序。

语法

OnErrorResumeNext

说明

若不使用OnErrorResumeNext语句,发生的任何运行时错误都将是致命的,即,显示错误信息并终止运行。

OnErrorResumeNext会使程序从紧随产生错误的语句之后的语句继续执行,或是从紧随最近一次调用过程(该过程含有OnErrorResumeNext语句)的语句继续运行。

这个语句可以不顾运行时错误,继续执行程序,之后您可以在过程内部建立错误处理例程。

在调用另一个过程时,OnErrorResumeNext语句变为非活动的。

所以,如果希望在例程中进行内部错误处理,则应在每一个调用的例程中执行OnErrorResumeNext语句。

OptionExplicit语句

描述

用于Script级强制要求显式声明该Script中的所有变量。

语法

OptionExplicit

说明

如果使用OptionExplicit,该语句必须出现在Script的任何过程之前。

使用OptionExplicit语句时,必须使用Dim、Private、Public或ReDim语句显式声明所有变量。

如果试图使用未经声明的变量名,则会出现错误。

提示可用OptionExplicit避免拼错已存在的变量名称。

对于作用范围不清楚的变量,使用此语句可避免发生混淆。

Private语句

描述

用于在Script级中声明私有变量及分配存储空间。

语法

Privatevarname[([subscripts])][,varname[([subscripts])]]...

Private语句的语法包含以下部分:

部分

描述

varname

变量的名称,遵循标准变量命名约定。

subscripts

数组变量的维数,最多可以声明60维的数组。

subscripts参数使用下列语法:

upper[,upper]...

数组的下界总是0。

说明

Private变量只能在声明该变量的Script中使用。

在使用引用对象的变量之前,必须用Set语句将某个现有对象赋予此变量。

在赋值之前,所声明的对象变量有一个特殊的值Nothing。

也可用带空圆括号的Private语句声明动态数组。

声明动态数组后,可在过程内使用ReDim语句定义该数组的维数和元素。

如果在Private、Public或Dim语句中已显式指定数组大小,却试图重新声明数组维数,就会发生错误。

在初始化变量时,数值变量被初始化为0,字符串被初始化为零长度字符串("")。

提示在过程中使用Private语句时,通常将Private语句放在过程的开始处。

Public语句

描述

用于在Script级中声明公用变量和分配存储空间。

语法

Publicvarname[([subscripts])][,varname[([subscripts])]]...

Public语句的语法包含以下部分:

部分

描述

varname

变量的名称,遵循标准变量命名约定。

subscripts

数组变量的维数;最多可以声明60维的数组。

subscripts参数使用下列语法:

upper[,upper]...

数组的下界总是0。

说明

使用Public语句声明的变量可用于所有项目的全部Script中的所有过程。

在使用引用对象的变量之前,必须用Set语句将某个已有对象赋予该变量。

在赋值之前,所声明的对象变量有一个特殊的值Nothing。

也可用带空圆括号的Public语句来声明动态数组。

声明动态数组后,可在过程内使用ReDim语句来定义该数组的维数和元素。

如果试图重新声明数组变量的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2