VB基本语法学习.docx

上传人:b****6 文档编号:6307797 上传时间:2023-01-05 格式:DOCX 页数:19 大小:26.52KB
下载 相关 举报
VB基本语法学习.docx_第1页
第1页 / 共19页
VB基本语法学习.docx_第2页
第2页 / 共19页
VB基本语法学习.docx_第3页
第3页 / 共19页
VB基本语法学习.docx_第4页
第4页 / 共19页
VB基本语法学习.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

VB基本语法学习.docx

《VB基本语法学习.docx》由会员分享,可在线阅读,更多相关《VB基本语法学习.docx(19页珍藏版)》请在冰豆网上搜索。

VB基本语法学习.docx

VB基本语法学习

VB基本语法学习<转>

高级语言  2008-08-1812:

45  阅读639   评论0 

字号:

大大 中中 小小

1常量与变量

1.1VB的数据类型

数据类型是数据的表示和存储形式。

VB定义的基本数据类型如表5-1所示。

表5-1VB的基本数据类型

数据类型

类型描述

类型说明后缀

数据范围

所占字节数

Integer

整型

%

-32768~32767

2

Long

长整型

&

-2147483648~2147483647

4

Single

单精度浮点型

!

-3.402823E38~-1.401298E-45

1.401298E-45~3.402823E38

4

Double

双精度浮点型

#

-1.79769313486232E308~-4.9406564584124E324

4.9406564584124E324~1.79769313486232E308

8

Currency

货币型

@

 

8

String

字符串型

$

 

每字符占一字节

Byte

字节型

 

0~255

1

Boolean

布尔数据型

 

-1(True)、(False)

 

Date

日期型

 

 

 

Object

对象型

 

 

4

Variant

变体

为上述任一种

 

 

Integer(整型)、Long(长整型)、Single(单精度浮点型)、Double(双精度长整型)及Currency(货币型)均为Numeric数据类型。

其中整型是16位的整数,长整型是32位的整数。

单精度及双精度浮点型就表示实数,常被用于数量较大的数字。

Currency数据类型支持小数点右面15位,是定点数据类型,适用于货币计算。

String(字符串变量)的数据类型只存放文本,是一个字符序列,它的每一个字符用ASCII编码表示。

不包含任何字符的串称为空串。

Byte数据类型表示0到255之间的数,常用于访问二进制文件、图形和声音文件

等。

当需要把数据存放成字节,必须访问各字节时可采用Byte类型。

取值仅为True/False的类型称为Boolean(布尔)型,缺省值为False。

Date数据类型用于以特殊方式存放日期和时间。

Object变量可引用应用程序中或某些其他应用程序中的对象。

VB缺省规定,如果在生命中没有说明数据类型,则变量的数据类型为Variant(变体)。

Variant数据类型还包含三种特定值:

Empty、Null、Error。

Empty值用于确定是否已将一个值赋予所创建的变量。

赋值之前,Variant变量具有值Empty。

Null常用于数据库应用程序,表示未知或丢失为空的数据。

Error值是指已发出的过程中的错误状态。

Variant数据类型是最为灵活的数据类型,可以依据不同的需要进行各种数据类型的转换。

它实际上包含两部分信息,一部分是数据类型的信息,一部分是表示数据值的信息。

但正是由于它的灵活性,又使得它存在着一个明显的缺点,Variant数据类型比其他类型的数据占有更多的内存空间。

2数组

VB中数组的定义类似于变量定义,所不同的是数组需要指定数组中的元素个数,例如:

DimArray(9)AsInteger

数组中包含10个元素,脚标从0到9。

也可以指定脚标的起始值,例如:

DimIntegerArray(2to10)AsInteger

这个数组含有九个元素,脚标从2到10。

还可以定义多维数组:

DimThreeD(4,2to5,3to6)AsInteger

定义一个三维数组(4×4×4)。

数组

数组是一组拥有相同名称同类元素。

定义数组后,即创建了数组。

数组中单个的数据项称为数组元素,用于访问数组元素的编号称为数组索引号,最小索引号和最大索引号称为边界。

在VBA中,根据数组元素是否变化,分为固定大小的数组和动态数组,根据数组的维数又可分为一维数组和多维数组。

1、创建数组

用Dim语句来定义固定大小的数组,即声明一个数组。

DimmyArray(9)AsInteger

上面的代码创建一个名为myArray含有10个数组元素的一维数组。

注意,所有VBA数组的下界均从0开始,因此上面的代码所创建的数组元素从myArray(0)到myArray(9)。

在Dim语句中不指明数组元素的个数来声明动态数组,如

DimmyDynamicArray()AsInteger

使用ReDim关键字重新定义数组的大小:

ReDimmyDynamicArray(10)

也可以用ReDim关键字同时声明一个动态数组并指定该数组的元素个数:

ReDimmyDynamicArray(5)AsInteger

VBA没有限制重新定义动态数组大小的次数,但在重新定义数组大小时,原有的数组数据就会丢失。

如果需要保留原来的数据,可以使用Preserve关键字:

ReDimPreservemyDynamicArray(5)

需要注意的是,如果重新定义数组时减小了数组的大小,则会丢失被缩减了的那部分元素的数据。

当然,与声明变量一样,也可以用Public语句声明公共数组。

2、确定数组的边界

可以使用UBound函数和LBound函数分别获取数组的最大边界和最小边界。

默认情况下,VBA的数组的下界是从0开始的,可以在模块的声明部分使用OptionBase语句来改变模块中数组的起始边界。

OptionBase1

该语句使数组元素的索引号从1开始。

也可以在定义数组时指定数组的上界和下界,如

Dim<数组名>(<下界>to<上界>)As<数据类型>

3、多维数组

多维数组可以在每个数组元素中存储一组数据,因此,多维数组的每个数组元素都包含一个数组。

与一维数组相同,可以使用下面的两种方法创建多维数组:

(1)Dim<数组名>(<数组元素数1>,<数组元素数2>,……)As<数据类型>

(2)Dim<数组名>(<下界>to<上界>,<下界>to<上界>,……)As<数据类型>

与一维数组相似,多维数组也可以是动态的。

4、引用数组中的元素

可以使用数组名称和一个索引号来引用数组中的某个特定的元素。

变量与常量:

 

1)VB允许使用未定义的变量,默认是变体变量Variant。

 

2)在模块通用说明部份,加入OptionExplicit语句可以强迫用户进行变量定义。

 

3)变量定义语句及变量作用域

Dim         变量as类型'定义为局部变量,如Dimxyzasinteger

Private变量as类型'定义为私有变量,如Privatexyzasbyte

Public变量as类型'定义为公有变量,如Publicxyzassingle

Global变量as类型'定义为全局变量,如Globlalxyzasdate

Static变量as类型'定义为静态变量,如Staticxyzasdouble

一般变量作用域的原则是,那部份定义就在那部份起作用,模块中定义则在该模块那作用。

 

4)常量为变量的一种特例,用Const定义,且定义时赋值,程序中不能改变值,作用域也如同变量作用域。

如下定义:

ConstPi=3.1415926assingle

 

5,数组:

是包含相同数据类型的一组变量的集合,对数组中的单个变量引用通过数组索引下标进行。

在内存中表现为一个连续的内存块,必须用Global或Dim语句来定义。

定义规则如下:

Dim数组名([lowerto]upper[,[lowerto]upper,….])astype;Lower缺省值为0。

二维数组是按行列排列,如XYZ(行,列)。

 

除了以上固定数组外,VBA还有一种功能强大的动态数组,定义时无大小维数声明;在程序中再利用Redim语句来重新改变数组大小,原来数组内容可以通过加preserve关键字来保留。

如下例:

Dimarray1()asdouble:

Redimarray1(5):

array1(3)=250:

Redimpreservearray1(5,10)

 

6,注释和赋值语句

 

1)注释语句是用来说明程序中某些语句的功能和作用;VB中有两种方法标识为注释语句。

 

单引号’;如:

’定义全局变量;可以位于别的语句之尾,也可单独一行

 

Rem;如:

Rem定义全局变量;只能单独一行

 

2)赋值语句是进行对变量或对象属性赋值的语句,采用赋值号=,如X=123:

Form1.caption=”我的窗口”。

对对象的赋值采用:

setmyobject=object或myobject:

=object

 

7,书写规范:

 

1)VBA不区分标识符的字母大小写,一律认为是小写字母;

 

2)一行可以书写多条语句,各语句之间以冒号:

分开;

 

3)一条语句可以多行书写,以空格加下划线_来标识下行为续行;

 

4)标识符最好能简洁明了,不造成歧义。

运算符

VB具有丰富的运算符集,大体上分为三类,算术运算符、关系运算符和逻辑运算符。

5.3.1算术运算符

VB中的算术运算符有如下几种:

^幂运算-负号

*乘/除

整除Mod取模

+加-减

以下列出几个算术运算的表达式:

X=Y^2‘X等于Y的平方

X=Y^-2‘X等于Y的负二次方

X=Y*Z‘X等于Y乘以Z

X=Y/Z‘X等于Y除以Z

X=5/2‘X等于5除以2,值为2.5

X=52‘X等于5用2整除,值为2

X=5Mod2‘X等于5模2,值为1

5.3.2关系运算符

=等于>大于<小于

<>不等于<=小于等于>=大于等于

如:

X=Y

3<>2……

关系运算符与数学运算符的用法一致,只是表达方式有所不同而已。

5.3.3逻辑运算符

VB中的逻辑运算符有:

NOT非AND与

OR或XOR异或

EQU逻辑等IMP隐含

以下分别介绍这几种运算符:

NOT:

逻辑非。

对逻辑值取反,如:

3<5‘表达式值为真

NOT3<5‘取反,表达式值为假

AND:

逻辑与。

两个表达式的值均为真,则结果为真,如果有任一个表达式值为假,则结果为假。

其运算规则如表5-2。

表5-2AND运算规则表

第一操作符

第二操作符

操作结果

True

True

True

True

False

False

False

True

False

False

False

False

例如:

3<5AND4>3‘两个表达式结果均为真,则AND操作结果为真。

3<5AND4<3‘第一个表达式结果为真,第二个表达式结果为假,则AND操作结果为假。

OR:

逻辑或。

当两个表达式中至少一个为真时,结果为真。

运算规则如表5-3。

表5-3OR运算规则表

第一操作符

第二操作符

操作结果

True

True

True

True

False

True

False

True

True

False

False

False

例如:

3<5OR4<3‘第一个表达式结果为真,第二个表达式结果为假,则OR操作结果为真。

XOR:

逻辑异或。

当两个表达式值相反时,结果为真。

运算规则如表5-4。

表5-4XOR运算规则表

第一操作符

第二操作符

操作结果

True

True

False

True

False

True

False

True

True

False

False

False

例如:

 5/3>1XOR1<0‘第一个表达式结果为真,第二个表达式结果为假,则XOR操作结果为真。

EQU:

逻辑等。

两个表达式的值相同时,结果为真。

运算规则如表5-5。

表5-5EQU运算规则表

第一操作符

第二操作符

操作结果

True

True

True

True

False

False

False

True

False

False

False

True

例如:

3<2EQU(3-1)<0‘第一个表达式结果为假,第二个表达式结果也为假,则EQU操作结果为真。

IMP:

比较两个表达式。

当第一个表达式为假或第二个表达式为真时操作结果为真。

运算规则如表5-6。

表5-6IMP运算规则表

第一操作符

第二操作符

操作结果

True

True

True

True

False

False

False

True

True

False

False

True

例如:

3<2IMP3>0‘第一个表达式结果为假,第二个表达式结果为真,则IMP操作结果为真。

5.4基本语句

5.4.1注释语句

在使用注释语句之前必须先了解注释的作用,注释不仅仅是对程序的解释,有时它对于程序的调试也非常有用,譬如说可以利用注释屏蔽一条语句以观察变化,发现问题和错误。

以后注释语句将是我们在编程里最经常用到的语句之一。

在VB里,注释语句有两种,一种是用“Rem”关键字,这跟DOS里的批处理文件的用法一样,还有一种是利用单引号“’”,例如:

‘DimaAsString与

RemDimaAsString的作用是一致的。

5.4.2顺序语句

顺序语句就是依顺序逐条执行的语句。

在程序中没有流程控制语句的情况下,程序中各语句将按顺序逐一执行,只有在上一条语句执行完毕后,才能执行下一条语句。

5.4.3条件语句

任何一种程序语言都离不开流程控制语句,程序中控制流程的语句有两种:

条件与循环。

掌握这两种语句是学习编程关键的一步,下面首先介绍VB中的条件语句。

5.4.3.1IF语句

在条件语句里,我们先来学习“If……Then……”语句。

语法:

If<条件>Then

<语句>

EndIf

如果希望条件不满足时执行另一语句,可以以增加一个else语句:

If<条件>Then

<语句>

else

<语句>

EndIf

如果Then后面所跟的语句只有一条,可以写成:

If<条件>Then<语句>

而不用EndIf。

还可以在Else里在嵌套If语句,如:

If<条件>Then

<语句>

ElseIf<条件>Then

<语句>

……

Else

<语句>

EndIf

判断语句

 

1)If…Then…Else语句

IfconditionThen[statements][Elseelsestatements]

如1:

IfA>BAndC

如2:

Ifx>250Thenx=x-100

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

IfconditionThen

[statements]

[ElseIfcondition-nThen

[elseifstatements]...

[Else

[elsestatements]]

EndIf

如1:

IfNumber<10Then

Digits=1

ElseIfNumber<100Then

Digits=2

Else

Digits=3

EndIf

2)SelectCase…Case…EndCase语句

如1:

SelectCasePid

Case“A101”

Price=200

Case“A102”

Price=300

……

CaseElse

Price=900

EndCase

 

3)Choose函数:

choose(index,choce-1,choice-2,…,choice-n),可以用来选择自变量串列中的一个值,并将其返回,index必要参数,数值表达式或字段,它的运算结果是一个数值,且界于1和可选择的项目数之间。

choice必要参数,Variant表达式,包含可选择项目的其中之一。

如:

GetChoice?

=Choose(Ind,"Speedy","United","Federal")

 

4)Switch函数:

Switch(expr-1,value-1[,expr-2,value-2_[,expr-n,value-n]])switch函数和Choose函数类似,但它是以两个一组的方式返回所要的值,在串列中,最先为TRUE的值会被返回。

expr必要参数,要加以计算的Variant表达式。

value必要参数。

如果相关的表达式为True,则返回此部分的数值或表达式,没有一个表达式为True,Switch会返回一个Null值。

 

9,循环语句

 

1)ForNext语句以指定次数来重复执行一组语句

Forcounter=startToend[Stepstep]'step缺省值为1

[statements]

[ExitFor]

[statements]

Next[counter]

如1:

ForWords=10To1Step-1'建立10次循环

ForChars=0To9'建立10次循环

MyString=MyString&Chars'将数字添加到字符串中

NextChars'Incrementcounter

MyString=MyString&""'添加一个空格

NextWords

2)ForEach…Next语句:

主要功能是对一个数组或集合对象进行,让所有元素重复执行一次语句

ForEachelementIngroup

Statements

[Exitfor]

Statements

Next[element]

如1:

ForEachrang2Inrange1

Withrange2.interior

.colorindex=6

.pattern=xlSolid

Endwith

Next

这上面一例中用到了With…EndWith语句,目的是省去对象多次调用,加快速度;语法为:

Withobject

[statements]

EndWith

3)Do…loop语句在条件为true时,重复执行区块命令

Do{while|until}condition'while为当型循环,until为直到型循环,顾名思义,不多说啦

Statements

Exitdo

Statements

Loop

或者使用下面语法

Do'先do再判断,即不论如何先干一次再说

Statements

Exitdo

Statements

Loop{while|until}condition

 

10,其他类语句和错误语句处理

 

A,其他循环语句:

结构化程序使用以上判断和循环语句已经足够,建议不要轻易使用下面的语句,虽然VBA还支持。

 

1)Gotoline该语句为跳转到line语句行

 

2)Onexpressiongosubdestinatioinlist或者onexpressiongotodestinationlist语句为根据exprssion表达式值来跳转到所要的行号或行标记

 

3)Gosubline…line…Return语句,Return返回到Gosubline行,如下例:

Subgosubtry()

Dimnum

Num=inputbox(“输入一个数字,此值将会被判断循环”)

Ifnum>0thenGosubRoutine1:

Debug.printnum:

Exitsub

Routine1:

Num=num/5

Return

Endsub

4)while…wend语句,只要条件为TRUE,循环就执行,这是以前VB老语法保留下来的,如下例:

whilecondition'whileI<50[statements]'I=I+1wend'Wend

 

B,错误语句处理:

执行阶段有时会有错误的情况发生,利用OnError语句来处理错误,启动一个错误的处理程序。

语法如下:

OnErrorGotoLine   '当错误发生时,会立刻转移到line行去

OnErrorResumeNext'当错误发生时,会立刻转移到发生错误的下一行去

OnErroGoto0'当错误发生时,会立刻停止过程中任何错误处理过程

5.5过程

在程序设计中经常会有重复的地方,可以把重复的部分独立为一个过程,在使用时进行调用,从而简化代码编写,提高编程效率。

过程可用于压缩重复任务或共享任务。

用过程编程有两大好处:

·        过程可使程序划分成离散的逻辑单元,每个单元都比无过程的整个程序容易调试。

·        一个程序中的过程,往往不必修改或只需稍作改动,便可以成为另一个程序的构件。

在VisualBasic中使用下列几种过程:

1.子(Sub)过程

[Private|Public][Static]Subname[(arglist)]

[statements]

[ExitSub]

[statements]

EndSub

Sub语句的语法包含下面部分:

Public|Private、Static声明函数的作用域、生存期。

Name:

必需的。

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

Arglist:

可选的。

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

多个变量则用逗号隔开。

Statements:

可选的。

Sub过程中所执行的任何语句组。

事件过程或其他过程可按名称调用子过程。

子过程能够接收参数,并可用于完成过程中的任务并返回一些数值。

但是,与函数过程不同,子过程不返回与其特定子过程名相关联的值(尽管它们能够通过变量名返回数值)。

子过程一般用于接收或处理输入数据、显示输出或者设置属性。

2.函数(Function)过程

[Public|Private][Static]Functionname[(arglist)][Astype]

[statements]

[name=expression]

[ExitFunction]

[statements]

[name=expression]

EndFunction

各参数分述如下:

Public|Private、Static:

声明函数的作用域、生存期。

Name:

必需的。

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

Arglist:

可选的。

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

多个变量应用逗号隔开。

type:

可选的。

Function过程的返回值的数据类型,可以是Byte、Boolean、Integer、Long、

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1