vb常用语句Word文档格式.docx
- 文档编号:22122748
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:27
- 大小:36.13KB
vb常用语句Word文档格式.docx
《vb常用语句Word文档格式.docx》由会员分享,可在线阅读,更多相关《vb常用语句Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
name
必要参数,要调用的过程名称。
argumentlist
说明
调用一个过程时,并不一定要使用Call关键字。
如果使用Call关键字来调用一个需要参数的过程,argumentlist就必须要加上括号。
如果省略了Call关键字,那么也必须要省略argumentlis外面的括号。
如果使用Call语法来调用内建函数或用户定义函数,则函数的返回值将被丢弃。
若要将整个数组传给一个过程,使用数组名,然后在数组名后加上空括号。
声明变量并分配存储空间。
Dim[WithEvents]varname[([subscripts])][As[New]type][,[WithEvents]varname[([subscripts])][As[New]type]]...
Dim语句的语法包含下面部分:
WithEvents
关键字,说明varname是一个用来响应由ActiveX对象触发的事件的对象变量。
只有在类模块中才是合法的。
使用WithEvents,可以声明任意个所需的单变量,但不能使用WithEvents创建数组。
New和WithEvents不能一起使用。
变量的名称;
遵循标准的变量命名约定。
subscripts
数组变量的维数;
最多可以定义60维的多维数组。
subscripts参数使用下面的语法:
[lowerTo]upper[,[lowerTo]upper]...
如果不显式指定lower,则数组的下界由OptionBase语句控制。
如果没有使用OptionBase语句,则下界为0。
New
可隐式地创建对象的关键字。
如果使用New来声明对象变量,则在第一次引用该变量时将新建该对象的实例,因此不必使用Set语句来给该对象引用赋值。
New关键字不能声明任何内部数据类型的变量,以及从属对象的实例,也不能与WithEvents一起使用。
type
变量的数据类型;
可以是Byte、布尔、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(对变长的字符串)、String*length(对定长的字符串)、Object、Variant、用户定义类型、或对象类型。
所声明的每个变量都要一个单独的Astype子句。
在模块级别中用Dim声明的变量,对该模块中的所有过程都是可用的。
在过程级别中声明的变量,只在过程内是可用的。
可以使用Dim语句在模块级或过程级中声明变量的数据类型。
例如,下面的语句声明了Integer类型的变量。
DimNumberOfEmployeesAsInteger
也可以使用Dim语句来声明变量的对象类型。
下面的语句为工作表的新建实例声明了一个变量。
DimXAsNewWorksheet
如果定义对象变量时没有使用New关键字,则在使用该变量之前,必须使用Set语句将该引用对象的变量赋值为一个已有对象。
在该变量被赋值之前,所声明的对象变量有一个特定值Nothing,这个值表示该变量没有指向任一个对象实例。
也可以使用带空圆括号的Dim语句来定义动态数组。
在定义动态数组后,可以在过程内使用ReDim语句来定义该数组的维数和元素。
如果试图在Private,Public或Dim语句中重新定义一个已显式定义了大小的数组的维数时,就会发生错误。
如果不指定数据类型或对象类型,且在模块中没有Deftype语句,则该变量按缺省设置是Variant类型。
当初始化变量时,数值变量被初始化为0,变长的字符串被初始化为一个零长度的字符串("
"
),而定长的字符串则用0填充。
Variant变量被初始化为Empty。
用户自定义类型的变量的每个元素作为各自独立的变量进行初始化。
注意当在过程中使用Dim语句时,通常将Dim语句放在过程的开始处。
4、Dim语句示例
该示例演示使用Dim语句来声明变量,也演示了用Dim语句来声明数组。
数组的缺省下界为0,可以在模块级使用OptionBase语句来取代数组的缺省下界。
'
AnyValue和MyValue按缺省情况被声明为Variant,
同时值被设为Empty。
DimAnyValue,MyValue'
显式声明一个Integer类型的变量。
DimNumberAsInteger'
在一行中声明多个变量。
AnotherVar为Variant类型,
因为它的类型被省略了。
DimAnotherVar,ChoiceAsBoolean,BirthDateAsDate'
DayArray是一个有51个索引(从0到50)元素的Variant数组,
假设在当前模块中OptionBase被设为0(缺省设置)。
DimDayArray(50)'
Matrix是一个二维Integer数组。
DimMatrix(3,4)AsInteger'
MyMatrix是一个显式指定了上下界
的三维double数组。
DimMyMatrix(1To5,4To9,3To5)AsDouble'
BirthDay是一个索引从1到10的date数组。
DimBirthDay(1To10)AsDate'
MyArray是一个variant动态数组。
5、Exit语句
示例
退出Do...Loop、For...Next、Function、Sub或Property代码块。
ExitDo
ExitFor
ExitFunction
ExitProperty
ExitSub
Exit语句的语法有以下几种形式:
语句
提供一种退出Do...Loop循环的方法,并且只能在Do...Loop循环中使用。
ExitDo会将控制权转移到Loop语句之后的语句。
当ExitDo用在嵌套的Do...Loop循环中时,ExitDo会将控制权转移到ExitDo所在位置的外层循环。
提供一种退出For循环的方法,并且只能在For...Next或ForEach...Next循环中使用。
ExitFor会将控制权转移到Next之后的语句。
当ExitFor用在嵌套的For循环中时,ExitFor将控制权转移到ExitFor所在位置的外层循环。
立即从包含该语句的Function过程中退出。
程序会从调用Function的语句之后的语句继续执行。
立即从包含该语句的Property过程中退出。
程序会从调用Property过程的语句之后的语句继续执行。
立即从包含该语句的Sub过程中退出。
程序会从调用Sub过程的语句之后的语句继续执行。
不要将Exit语句与End语句搞混了。
Exit并不说明一个结构的终止。
Exit语句示例
本示例使用Exit语句退出For...Next循环、Do...Loop循环及子过程。
SubExitStatementDemo()
DimI,MyNum
Do'
建立无穷循环。
ForI=1To1000'
循环1000次。
MyNum=Int(Rnd*1000)'
生成一随机数码。
SelectCaseMyNum'
检查随机数码。
Case7:
ExitFor'
如果是7,退出For...Next循环。
Case29:
ExitDo'
如果是29,退出Do...Loop循环。
Case54:
ExitSub'
如果是54,退出子过程。
EndSelect
NextI
Loop
EndSub
以指定次数来重复执行一组语句。
For...Next
Forcounter=startToend[Stepstep]
[statements]
[ExitFor]
Next[counter]
For…Next语句的语法具有以下几个部分:
counter
必要参数。
用做循环计数器的数值变量。
这个变量不能是布尔或数组元素。
start
counter的初值。
End
必要参数,counter的终值。
Step
可选参数。
counter的步长。
如果没有指定,则step的缺省值为1。
Statements
放在For和Next之间的一条或多条语句,它们将被执行指定的次数。
step参数可以是正数或负数。
step参数值决定循环的执行情况,如下所示:
值
循环执行,如果
正数或0
counter<
=end
负数
counter>
当所有循环中的语句都执行后,step的值会加到counter中。
此时,循环中的语句可能会再次执行(基于循环开始执行时同样的测试),也可能是退出循环并从Next语句之后的语句继续执行。
提示在循环中改变counter的值,将会使程序代码的阅读和调试变得更加困难。
循环中可以在任何位置放置任意个ExitFor语句,随时退出循环。
ExitFor经常在条件判断之后使用,例如If...Then,并将控制权转移到紧接在Next之后的语句。
可以将一个For...Next循环放置在另一个For...Next循环中,组成嵌套循环。
不过在每个循环中的counter要使用不同的变量名。
下面的体系结构是正确的:
ForI=1To10
ForJ=1To10
ForK=1To10
...
NextK
NextJ
NextI
注意如果省略Next语句中的counter,就像counter存在时一样执行。
但如果Next语句在它相对应的For语句之前出现,则会产生错误。
For...Next语句示例
本示例使用For...Next语句创建一个字符串,其内容为由0到9的十个数字所组成的字符串,每个字符串之间用空格隔开。
外层循环使用一个变量当作循环计数器,每循环一次,变量值减一。
DimWords,Chars,MyString
ForWords=10To1Step-1'
建立10次循环。
ForChars=0To9'
MyString=MyString&
Chars'
将数字添加到字符串中。
NextChars'
Incrementcounter
"
'
添加一个空格。
NextWords
根据表达式的值有条件地执行一组语句。
IfconditionThen[statements][Elseelsestatements]
或者,可以使用块形式的语法:
IfconditionThen
[ElseIfcondition-nThen
[elseifstatements]...
[Else
[elsestatements]]
EndIf
If...Then...Else语句的语法具有以下几个部分:
condition
一个或多个具有下面两种类型的表达式:
数值表达式或字符串表达式,其运算结果为True或False。
如果condition为Null,则condition会视为False。
TypeOfobjectnameIsobjecttype形式的表达式。
其中的objectname是任何对象的引用,而objecttype则是任何有效的对象类型。
如果objectname是objecttype所指定的一种对象类型,则表达式为True,否则为False。
statements
在块形式中是可选参数;
但是在单行形式中,且没有Else子句时,则为必要参数。
一条或多条以冒号分开的语句,它们在condition为True时执行。
8、Input#语句
从已打开的顺序文件中读出数据并将数据指定给变量。
Input#filenumber,varlist
Input#语句的语法具有以下几个部分:
filenumber
必要。
任何有效的文件号。
varlist
用逗号分界的变量列表,将文件中读出的值分配给这些变量;
这些变量不可能是一个数组或对象变量。
但是,可以使用变量描述数组元素或用户定义类型的元素。
通常用Write#将Input#语句读出的数据写入文件。
该语句只能用于以Input或Binary方式打开的文件。
在读出数据时不经修改就可直接将标准的字符串或数值数据指定给变量。
下表说明如何处理其它输入数据:
数据
指定给变量的值
分隔逗号或空白行
Empty
#NULL#
Null
#TRUE#or#FALSE#
True或False
#yyyy-mm-ddhh:
mm:
ss#
用表达式表示的日期与/或时间
#ERRORerrornumber#
errornumber(此变量是一个Variant,用来标记错误)
输入数据中的双引号符号("
)将被忽略。
文件中数据项目的顺序必须与varlist中变量的顺序相同,而且与相同数据类型的变量匹配。
如果变量为数值类型而数据不是数值类型,则指定变量的值为零。
在输入数据项目时,如果已到达文件结尾,则会终止输入,并产生一个错误。
注意为了能够用Input#语句将文件的数据正确读入到变量中,在将数据写入文件时,要使用Write#语句而不使用Print#语句。
使用Write#语句可以确保将各个单独的数据域正确分隔开。
9、Input#语句示例
本示例使用Input#语句将文件内的数据读入两个变量中。
本示例假设TESTFILE文件内含数行以Write#语句写入的数据;
也就是说,每一行数据中的字符串部分都是用双引号括起来,而与数字用逗号隔开,例如,("
Hello"
234)。
DimMyString,MyNumber
Open"
TESTFILE"
ForInputAs#1'
打开输入文件。
DoWhileNotEOF
(1)'
循环至文件尾。
Input#1,MyString,MyNumber'
将数据读入两个变量。
Debug.PrintMyString,MyNumber'
在立即窗口中显示数据。
Loop
Close#1'
关闭文件。
10、Load语句
把窗体或控件加载到内存中。
Loadobject
objec所在处是要加载的Form对象、MDIForm对象或控件数组元素的名称。
除非在加载窗体时不需要显示窗体,否则对于窗体不需要使用Load语句。
在窗体还未被加载时,对窗体的任何引用(在Set或If...TypeOf语句以外)会自动加载该窗体。
例如,Show方法在显示窗体前会先加载它。
一旦窗体被加载,不管它是否可见,它的属性及控件会被应用程序所改变。
在某些情况下,也许需要在初始化时加载所有的窗体并在以后需要它们的时候显示它们。
当VisualBasic加载Form对象时,先把窗体属性设置为初始值,再执行Load事件过程。
当应用程序开始运行时,VisualBasic自动加载并显示应用程序的启动窗体。
在加载MDIChild属性为True的Form(换言之,子窗体)时,而此时MDIForm还未被加载,那么会在子窗体前自动加载MDIForm。
因为MDI子窗体不能被隐藏起来,所以在Form_Load事件过程结束时马上可以见到MID子窗体。
由VisualBasic函数产生的标准对话框,诸如MsgBox和InputBox,不需要加载、显示或卸载即可简单地直接调用。
Load语句示例
这个示例使用Load语句加载Form对象。
要试用此示例,在Form对象的声明部分粘贴以下代码,然后运行此例并单击该Form对象。
PrivateSubForm_Click()
DimAnswer,MsgasString'
声明变量。
UnloadForm1'
卸载窗体。
Msg="
Form1hasbeenunloaded.ChooseYestoloadand"
Msg=Msg&
displaytheform.ChooseNotoloadtheform"
andleaveitinvisible."
Answer=MsgBox(Msg,vbYesNo)'
获得用户响应。
IfAnswer=vbYesThen'
测试应答。
Show'
如果回答Yes,则显示窗体。
Else
LoadForm1'
如果回答NO,则仅加载窗体。
Form1isnowloaded.ChooseOKtodisplayit."
MsgBoxMsg'
显示消息。
显示窗体。
EndIf
11、Mid语句
在一Variant(String)变量中以另一个字符串中的字符替换其中指定数量的字符。
Mid(stringvar,start[,length])=string
Mid语句的语法具有下面几个部分:
stringvar
被更改的字符串变量名。
必要参数;
Variant(Long)。
stringvar中被替换的字符开头位置。
length
被替换的字符数。
如果省略,string将全部用上。
string
字符串表达式,替换部分stringvar的字符串。
被替换的字符数量总是小于或等于stringvar的字符数。
注意MidB语句作用于包含在字符串中的字节数据。
在MidB语句中,start指定stringvar中被替换的字节开头位置,而length为替换的字节数。
Mid语句示例
本示例使用Mid语句将某字符串中的几个字符替换为其他的字符。
DimMyString
MyString="
Thedogjumps"
设置字符串初值。
Mid(MyString,5,3)="
fox"
MyString="
Thefoxjumps"
。
Mid(MyString,5)="
cow"
Thecowjumps"
cowjumpedover"
Thecowjumpe"
duck"
Theducjumpe"
12、Open语句
能够对文件输入/输出(I/O)。
OpenpathnameFormode[Accessaccess][lock]As[#]filenumber[Len=reclength]
Open语句的语法具有以下几个部分:
pathname
字符串表达式,指定文件名,该文件名可能还包括目录、文件夹及驱动器。
mode
关键字,指定文件方式,有Append、Binary、Input、Output、或Random方式。
如果未指定方式,则以Random访问方式打开文件。
access
可选。
关键字,说明打开的文件可以进行的操作,有Read、Write、或ReadWrite操作。
lock
关键字,说明限定于其它进程打开的文件的操作,有Shared、LockRead、LockWrite、和LockReadWrite操作。
一个有效的文件号,范围在1到511之间。
使用FreeFile函数可得到下一个可用的文件号。
reclength
小于或等于32,767(字节)的一个数。
对于用随机访问方式打开的文件,该值就是记录长度。
对于顺序文件,该值就是缓冲字符数。
对文件做任何I/O操作之前都必须先打开文件。
Open语句分配一个缓冲区供文件进行I/O之用,并决定缓冲区所使用的访问方式。
如果pathname指定的文件不存在,那么,在用Append、Binary、Output、或Random方式打开文件时,可以建立这一文件。
如果文件已由其它进程打开,而且不允许指定的访问类型,则Open操作失败,而且会有错误发生。
如果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 常用 语句