浙教版信息技术第四章《VB程序设计初步》_第1页
浙教版信息技术第四章《VB程序设计初步》_第2页
浙教版信息技术第四章《VB程序设计初步》_第3页
浙教版信息技术第四章《VB程序设计初步》_第4页
浙教版信息技术第四章《VB程序设计初步》_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章VB程序设计第四章VB程序设计在设计一个规模较大、功能较复杂的程序时,需要按功能将程序分解成假设干个相互独立的部件,VB称这些部件为过程。在程序编写时,分别对每个“过程〞编写程序,可以简化程序设计任务。本章主要对工程、模块和过程进行介绍。4.1文件类型VB应用程序由扩展名为.vbp、.frm、.frx、.bas、.cls等几种类型的文件组成。窗体文件(.frm)包含窗体、控件的描述和属性设置,也包含窗体级的常数、变量、外部过程的声明,以及事件过程和一般过程。如果程序没有frm窗体文件,那么表示没有用户界面。窗体的二进制数据文件(.frx)含有窗体上控件的二进制属性数据。这些文件是在创立窗体时自动产生的。4.1文件类型标准模块文件(.bas)用于存放几个窗体中都需要用的公共代码,包含常数、类型、变量和过程的声明,以及过程代码。类模块文件(.cls)用于建立新对象,这些新对象可以包含自定义的属性和方法。类模块即包含代码又包含数据,可被应用程序内的过程调用。4.1文件类型工程文件(.vbp)工程文件包含组成应用程序的所有窗体文件(.frm)、模块文件(.bas)和其它文件,也包含环境设置选项方面的信息。工程的操作:翻开和保存工程:通过“文件〞菜单进行翻开和保存工作设置工程属性:“工程〞菜单,“工程属性〞对话框操作添加工程:工具栏或“文件〞菜单添加已有工程或新建工程添加多个工程可组成工程组删除工程:“工程资源管理器〞中通过右键快捷菜单向工程中添加和删除文件:工具栏或“工程〞菜单4.2过程将较为复杂的程序分割成较小的逻辑部件,这些部件称为过程。每个过程为一段程序,一个过程可以被另一个过程调用。多个过程构成一个完整、复杂的应用程序。将应用程序分解成过程进行分别调试,可极大地简化程序设计任务。4.2过程应用程序工程文件窗体文件多个过程标准模块文件多个过程类模块文件多个过程工程文件应用程序的组成:……………4.2过程过程的分类:子程序过程(SubProcedure)子程序过程没有返回值函数过程(FunctionProcedure)函数过程具有返回值,如a=sin(x)属性过程(PropertyProcedure)属性过程可以返回和设置窗体、标准模块和类模块,也可以设置对象的属性。VB的所有可执行代码必须属于某个过程。过程的定义是平行的,不能在一个过程中定义其它过程。4.2.1Sub过程(子程序过程)Sub过程可以放在标准模块和窗体模块中。VB中有两种Sub过程:事件过程通过过程事件过程VB是事件驱动的,为一个事件所编写的程序代码,称为事件过程。当VB对象中的某个事件发生时,自动调用相应的事件过程。事件过程分为窗体事件过程和控件事件过程。4.2.1Sub过程(子程序过程)(1)窗体事件过程的语法:PrivateSubForm_事件名([参数列表])[局部变量和常数声明]语句块EndSub例如:PrivateSubForm_Click()frmText.ShowHideEndSub注意:不管窗体的名称(Name)属性是什么,在事件过程中只能使用“Form_事件名〞在程序代码中对窗体的引用须要使用窗体的名称属性在程序有多个窗体时,如何对不同窗体的窗体事件编程?将要进行编程的窗体放在屏幕最前端(或在工程资源管理器中选中窗体),再点击工程资源管理器中的“查看代码〞按钮;在代码窗口的标题栏中显示代码对应的窗体。4.2.1Sub过程(子程序过程)(2)控件事件过程的语法:PrivateSub控件名_事件名([参数列表])[局部变量和常数声明]语句块EndSub例如:PrivateSubCommand1_Click()Text2=Text1*Text1*3.14EndSub4.2.1Sub过程(子程序过程)(3)事件过程的创立方法:在设计的窗体上双击窗体或控件,翻开“代码编辑器〞窗口,并会出现该窗体或控件的默认过程代码。单击工程资源管理器窗口的“查看代码〞按钮,在对象列表框选择对象,在“过程列表框〞选择事件过程。根据语法要求,自己编写事件过程。4.2.1Sub过程(子程序过程)通用过程当几个不同的事件过程需要执行同样的动作时,为了不重复编写代码,可以采用通用过程来实现。要运行通用过程中的代码,需要在事件过程对通用过程进行调用。通用过程可以保存在窗体模块(.frm)和标准模块(.bas)两种模块中。在VB中,事件过程是必要的,但通用过程不是必要的,是为了程序员方便而单独建立的。4.2.1Sub过程(子程序过程)(1)通用过程的语法:Private和Public:用来声明该Sub过程是局部的(Private),还是全局的(Public),系统默认值为PublicStatic:表示局部静态变量。“静态〞是指在过程运行结束后仍保存Sub过程的变量值。过程名:根据该通用过程的功能,程序员自己定义的名字。与变量的命名规那么相同,在同一模块中过程名不能重名。[Private|Public][Static]Sub过程名([参数列表])[局部变量和常数声明]语句块 [ExitSub]

语句块EndSub4.2.1Sub过程(子程序过程)(1)通用过程的语法:局部变量和常数声明:用来声明过程中定义的变量和常数,可用Dim等语句声明。ExitSub:使程序立即从一个Sub过程中退出,一般放在分支结构代码中。语句块:过程中执行的操作,称为子程序或过程体。EndSub:用于结束本Sub过程。注意:ExitSub与EndSub是结束本Sub过程,不是结束应用程序的运行[Private|Public][Static]Sub过程名([参数列表])[局部变量和常数声明]

语句块

[ExitSub]

语句块EndSub4.2.1Sub过程(子程序过程)参数列表:类似于变量的声明,列出从调用过程传递来的函数值,称为形式参数(简称形参),多个形参间用“,〞隔开。形参语法:[ByVal|ByRef]变量名[()][As数据类型]ByVal:表示该参数按值传递ByRef:表示该参数按地址传递(默认值)[Private|Public][Static]Sub过程名([参数列表])[局部变量和常数声明]语句块 [ExitSub]

语句块EndSub注意:即使Sub过程中的参数列表为空,过程名后的括号也不能省略【例Ex_Telephone】PrivateSubForm_Load()DimiAsIntegerFori=1To9LoadCommand1(i)Command1(i).Visible=TrueCommand1(i).Caption=iCommand1(i).Left=Command1(0).Left+800*iIfi>4ThenCommand1(i).Top=Command1(0).Top+800Command1(i).Left=Command1(0).Left+800*(i-5)EndIfNextiEndSubPrivateSubCommand1_Click(IndexAsInteger)Text1.Text=Text1.Text&Command1(Index).CaptionEndSub4.2.1Sub过程(子程序过程)PublicSubWarning(ByvalfAsinteger)……EndSub[Private|Public][Static]Sub过程名([参数列表])[局部变量和常数声明]语句块 [ExitSub]

语句块EndSubPrivateSubWarning(fAsinteger)……EndSub例如:注意:Sub过程不能嵌套定义PublicSubWarning(ByvalfAsinteger)

PrivateSubWelcome() ……EndSub

EndSub4.2.1Sub过程(子程序过程)(2)通用过程的创立方法:方法一:翻开“代码编辑器〞窗口后,点击“工具〞菜单的“添加过程〞命令方法二:在“代码编辑器〞窗口中手动创立4.2.2Function过程VB系统提供了诸多内部函数,如sin()、Date()、Left()等等。用户可以利用Function过程编写自己的函数过程。[Private|Public][Static]Function函数名([参数列表])[As数据类型][局部变量和常数声明]语句块

[函数名=表达式]

[ExitFunction]

语句块 [函数名=表达式]EndFunction注意:与Sub过程一样,Function过程也是一个独立的过程;与Sub过程不同的是,Function过程可以返回一个值到调用的过程[Private|Public][Static]Sub过程名([参数列表])[局部变量和常数声明]语句块 [ExitSub]

语句块EndSub4.2.2Function过程[Private|Public][Static]Function函数名([参数列表])[As数据类型][局部变量和常数声明]语句块 [函数名=表达式] [ExitFunction]

语句块

[函数名=表达式]EndFunctionAs数据类型:函数返回值的数据类型,例如sin()函数的返回值为Double型。假设省略“As子句〞,默认类型为Variant型。语句块:描述过程的操作,称为子函数体或函数体。函数名=表达式:在函数体中用该语句给函数赋值。如果在Function过程中省略该语句,那么返回值为数据类型的默认值。例如,数值函数返回0;字符函数返回空字符串。4.2.2Function过程[Private|Public][Static]Function函数名([参数列表])[As数据类型][局部变量和常数声明]语句块 [函数名=表达式]

[ExitFunction]

语句块 [函数名=表达式]EndFunctionExitFunction语句:提前退出Function过程。在退出函数过程之前,必须保证为函数赋值,否那么出错。4.2.2Function过程Function过程实例:计算直角三角形的斜边长度

FunctionHypotenuse(AAsInteger,BAsInteger)AsInteger Hypotenuse=Sqr(A^2+B^2)EndFunction实例中:A、B为两个整型的形式参数Hypotenuse函数的返回值为一个整型数函数体为赋值语句,计算两个形参平方和的平方根4.3过程的调用PrivateSubCommand1_Click()DimYAsDouble,FAsDoubleF=Sin(10)

Y=Sin(Val(Text1.Text))Text2.Text=YEndSub语句1语句2过程1调用语句语句3语句4语句1语句2过程2调用语句语句3End过程1语句1语句2语句3End过程2事件过程过程1代码过程2代码过程调用的程序执行顺序:4.3.1调用Sub事件过程调用Sub过程是一个独立的语句。Sub事件过程可由事件自动调用,或在同一模块中的其它过程中使用调用语句调用。调用Sub过程的方法: 1.使用Call语句

语法:Call过程名[(参数列表)] 2.直接使用过程名

语法:过程名[参数列表]参数列表:在调用语句中的参数称为实在参数(简称实参)。实参可以是变量、常数、数据和表达式。使用Call语句调用时,参数必须在括号内;没有参数时,括号可省略。用过程名调用,没有参数时必须省略参数两边的括号执行调用语句时,VB将控制传递给被调用的Sub过程。4.3.1调用Sub事件过程PrivateSubtxtInput_LostFocus()IfIsNumeric(txtInput)=TrueThen

MsgBox"输入的是数值",vbOKOnly,"输入"Else

MsgBox"输入的是文字",vbOKOnly,"输入"EndIfEndSubPrivateSubcmdCheck_Click()CalltxtInput_LostFocusEndSubPrivateSubcmdEnd_Click()EndEndSub【例Ex_CheckN1】4.3.2调用Sub通用过程SubWarning()IfIsNumeric(txtInput)=TrueThenMsgBox"输入的是数值",vbOKOnly,"输入"ElseMsgBox"输入的是文字",vbOKOnly,"输入"EndIfEndSubPrivateSubcmdCheck_Click()

CallWarningEndSubPrivateSubtxtInput_LostFocus()

WarningEndSub【例Ex_CheckN2】注意:VB程序是事件驱动的,Sub通用过程只有在被其它事件过程直接或间接调用时才会被执行,否那么不会被执行。调用Function过程调用函数Function过程的方法与调用VB内部函数方法一样,在语句中直接使用函数名,Function过程可以返回一个值到调用的过程。例如:FunctionHypotenuse(AAsInteger,BAsInteger)AsInteger Hypotenuse=Sqr(A^2+B^2)EndFunctionPrivateSubForm_Click() Print10*Hypotenuse(3,4) X=Hypotenuse(3,4) IfHypotenuse(3,4)=10ThenPrint“Error〞 EndSub调用Function过程采用调用Sub过程的语法也能调用Function过程,当用这种方法调用过程时,放弃Function过程的返回值。。调用Sub过程的方法: 1.使用Call语句 语法:Call过程名[(参数列表)] 2.直接使用过程名 语法:过程名[参数列表]例如:P=MsgBox(“输入的是数值〞,vbOKOnly,“输入")MsgBox“输入的是数值〞,vbOKOnly,“输入〞FunctionHypotenuse(AAsInteger,BAsInteger)AsInteger Hypotenuse=Sqr(A^2+B^2)EndFunctionPrivateSubForm_Click() Print10*Hypotenuse(3,4) X=Hypotenuse(3,4) IfHypotenuse(3,4)=10ThenPrint“Error〞 EndSub4.4参数的传递在调用一个有参数的过程时,参数是在本过程有效的局部变量,通过“形参和实参结合〞传递信息。实现调用过程的实参与被调用过程的形参之间的数据传递。数据有按值传递和按地址传递两种方式。形参:在被调用过程中的参数是形参。实参:是在主调过程中的参数。4.4.1形参和实参语句1语句2过程1调用语句语句3语句4语句1语句2语句3End过程14.4.1形参和实参在过程定义语句中的参数列表为形参列表,在过程被调用之前,形参未被分配内存,只是说明形参的类型和在过程中的作用在过程调用语句中的参数列表为实参列表,在过程调用时实参将数据传递给形参例如:FunctionHypotenuse(AAsInteger,BAsInteger)AsInteger Hypotenuse=Sqr(A^2+B^2)EndFunction

PrivateSubForm_Click() DimxAsInteger,yAsInteger,CAsinteger x=Val(Text1):y=Val(Text2) C=Hypotenuse(x,y) EndSub4.4.1形参和实参形参列表和实参列表的对应变量名可以不同。实参与形参的个数、顺序和数据类型必须相同。形参与实参的数据传递是按位置结合的,即第1个实参与第1个形参结合,第2个实参与第2个形参结合,依此类推。形参与实参必须是一一对应的关系,否那么编译出错。例如:FunctionHypotenuse(AAsInteger,BAsInteger)AsInteger Hypotenuse=Sqr(A^2+B^2)EndFunction

PrivateSubForm_Click() DimxAsInteger,yAsInteger,CAsinteger x=Val(Text1):y=Val(Text2) C=Hypotenuse(x,y) EndSubC=Hypotenuse(x):D=Hypotenuse(x,y,10)4.4.1形参和实参例如:FunctionHypotenuse(AAsInteger,B)AsInteger Hypotenuse=Sqr(A^2+B^2) EndFunction

PrivateSubForm_Click() DimxAsSingle,yAsSingle,CAsinteger x=10.5:y=5.8

C=Hypotenuse(10.5,5.8) C=Hypotenuse(x,y) EndSub如果没有声明形参的数据类型,那么默认为Variant型数据。对于实参数据类型那个与形参不一致时,VB会先将实参进行数据转换,然后将转换值传递给形参。注意:这种数据转换只适用于常量的转换。4.4.1形参和实参形参可以使用可选参数,在参数列表中使用Optional关键字。当使用可选参数后,形参与实参不必一一对应,在实参列表中缺省的参数取值为该数据类型的默认值。形参与实参是相对的概念。例如:FunctionHypotenuse(OptionalAAsInteger,OptionalBAsInteger)AsInteger

y=Sin(A)

Hypotenuse=Sqr(A^2+B^2) EndFunction

PrivateSubForm_Click() DimxAsInteger,yAsInteger,CAsinteger x=Val(Text1):y=Val(Text2) C=Hypotenuse(x,y) EndSubC=Hypotenuse(x):C=Hypotenuse(,x)4.4.2参数按值传递和按地址传递在VB程序进行过程调用时,参数的传递有按值传递(PassedByValue)和按地址传递(PassedByReference)两种方式。1按值传递参数参数按值传递使用ByVal关键字。例如:PublicSubWarning(ByvalfAsinteger)……EndSub4.4.2参数按值传递和按地址传递1按值传递参数按值传递参数时,VB给传递的形参分配一个临时的内存单元,将实参的值传递到这个临时单元。实参向形参传递是单向的。如果在被调用过程中改变了形参值,不会影响实参变量本身。当被调用过程结束返回主调过程时,VB将释放形参的临时存储单元。4.4.2参数按值传递和按地址传递PrivateSubcmdStart_Click()Dima,b,cAsIntegera=Val(txtA.Text)b=Val(txtB.Text)txtMax=Max(a,b)txtResultA.Text=atxtResultB.Text=bEndSubPrivateFunctionMax(ByValxAsInteger,ByValyAsInteger)DimzAsIntegerIfx<yThenz=x:x=y:y=zEndIfMax=xtxtX.Text=x:txtY.Text=yEndFunction【例Ex_Max】4.4.2参数按值传递和按地址传递2按地址传递参数定义按地址传递参数可使用ByRef关键字,或不使用关键字。例如:PublicSubWarning(ByReffAsinteger)……EndSub

PublicSubWarning(fAsinteger)……EndSub4.4.2参数按值传递和按地址传递2按地址传递参数按地址传递参数,是指把形参变量的内存地址传递给被调用的过程。形参、实参具有相同的地址,即形参、实参共享同一段存储单元。在被调用过程中改变形参的值,那么相应实参的值也被改变。如果在过程调用语句中的实参是参数或表达式,那么VB用按值传递的方法处理。4.4.2参数按值传递和按地址传递PrivateFunctionMax(xAsInteger,yAsInteger)DimzAsIntegerIfx<yThenz=x:x=y:y=zEndIfMax=xtxtX.Text=x:txtY.Text=yEndFunctionPrivateSubcmdStart_Click()Dima%,b%,c%a=Val(txtA.Text)b=Val(txtB.Text)txtMax=Max(a,b)txtResultA.Text=atxtResultB.Text=bEndSub【例Ex_Max】4.4.2参数按值传递和按地址传递【例Ex_MulSum】计算3!+2!+1!PrivateFunctionMultiply(nAsInteger)AsIntegerMultiply=1DoWhilen>0Multiply=Multiply*nn=n-1LoopEndFunctionPrivateSubForm_Click()DimSumAsInteger,iAsIntegerFori=3To1Step-1Sum=Sum+Multiply(i)NextiPrint"Sum=";SumEndSub4.4.3数组参数数组参数是指在定义过程时,可以定义数组作为过程的形参。语法:形参数组名()[As数据类型]形参为数组时,过程调用时的实参必须也是数组。实参列表中的数组不需要用“()〞。数组的参数传递只能按地址传递,形参与实参共用同一段内存单元。4.4.3数组参数【例Ex_AverScore】计算正式员工和临时员工的平均工资PrivateSubcmdStart_Click()DimSalary1(5)AsSingle,Salary2(8)AsSingleSalary1(0)=1900:Salary1(1)=1970:Salary1(2)=1915Salary1(3)=1600:Salary1(4)=1655Salary2(0)=2675:Salary2(1)=2780:Salary2(2)=2715Salary2(3)=2540:Salary2(4)=2990Salary2(5)=2770:Salary2(6)=2895:Salary2(7)=2765txtS1.Text=Int(Average(Salary1,5)*100)/100txtS2.Text=Int(Average(Salary2,8)*100)/100EndSubPrivateFunctionAverage(stuArray()AsSingle,nAsInteger)AsSingleDimiAsIntegerDimaverAsSingle,sumAsSingleFori=0Ton-1sum=sum+stuArray(i)Nextiaver=sum/nAverage=averEndFunction赋初始值Salary1为临时员工Salary2为正式员工调用Average函数计算平均工资,并在文本框中显示计算工资总和对象参数VB中对象也可以作为形参,将对象向被调用过程传递。对象的传递只能按地址传递。对象的类型声明为“Control〞或控件类型,如:“Lable〞、“Form〞。对象参数PrivateSubcmdEmployee_Click(IndexAsInteger)CallfrmSelect(frmSecond,cmdEmployee(Index).Caption)CalllabSelect(frmSecond.Label1,cmdEmployee(Index).Caption)EndSubPrivateSubfrmSelect(FAsForm,cmdCapAsString)F.Caption=cmdCap&"人员管理"EndSubPrivateSublabSelect(LAsLabel,cmdCapAsString)L.Caption="欢送进入"&Chr(13)&cmdCap&"人员管理"L.FontSize=16L.FontBold=TrueL.Visible=TruefrmSecond.ShowfrmFirst.HideEndSub【例Ex_FormArgu1】创立两个窗体的人员管理系统4.5递归过程在VB中Sub过程可以进行递归调用,即在过程中可以直接或间接地调用过程本身。PrivateFunctionFNC(xasInteger)DimyAsInteger,zAsSingle……z=FNC(y)……EndFunction这种递归结构会使过程进入无限死循环?递归程序的编程方法:

确定递归公式

递归的结束条件

采用条件结构编写程序4.5递归过程【例Ex_MulN1】计算n的阶乘1递归的形式n!=n×(n-1)×(n-2)×……×2×1

可以写成:n!=n×(n-1)!(n-1)!=(n-1)×(n-2)!……递归公式为:n!=n×(n-1)!2递归的结束条件n=0或1时n!=14.5递归过程【例Ex_MulN1】计算n的阶乘PrivateSubForm_Click()DimMAsInteger,iAsIntegeri=InputBox("请输入一个正整数")M=Muln(i)Print"M=";MEndSubPrivateFunctionMuln(nAsInteger)AsIntegerIfn=0Orn=1ThenMuln=1ElseMuln=Muln(n-1)*nEndIfEndFunctionPrivateFunctionMuln(nAsInteger)AsIntegerSelectCasenCase0Or1Muln=1CaseIs>1Muln=Muln(n-1)*nEndSelectEndFunction4.6变量和过程的作用范围4.6.1变量的作用范围变量的作用范围是指变量有效的范围。在VB中可分为过程级变量、模块级变量和全局变量三种。1过程级变量:过程级变量只在声明它们的过程中才有效,也称为局部变量。用户无法在其他过程中访问或改变变量的值。

过程级变量的定义方法:Dim变量名As数据类型Static变量名As数据类型4.6.1变量的作用范围PrivateFunctionMax(xAsInteger,yAsInteger)DimzAsIntegerIfx<yThenz=x:x=y:y=zEndIfMax=xtxtX.Text=x:txtY.Text=yEndFunction对于临时的计算,适合声明为局部变量。不同过程中的局部变量可以重名。在过程中使用Dim语句定义的变量都是局部变量。4.6.1变量的作用范围2模块级变量:模块级变量对该模块的所有过程都有效。在模块中的任何过程都可以使用该变量。

模块级变量的定义方法:Dim变量名As数据类型Private变量名As数据类型4.6.1变量的作用范围3全局变量:全局变量的作用范围是应用程序的所有过程,也称为共用变量。

全局变量的定义方法:Public变量名As数据类型4.6.1变量的作用范围【例Ex_FormArgu2】人员管理系统【例Ex_FormArgu2】人员管理系统首先创立2个窗体文件和一个标准模块文件。

给全局变量赋值窗体2内标签控件显示的内容窗体2标题栏显示的内容计算平均值的函数过程4.6.2静态变量变量除了作用范围外,还有存活期的概念,即变量能够保持其值的时间。模块级变量和全局变量的存活期是整个应用程序的运行期间。在过程中用Dim语句定义的局部变量仅当本过程执行期间存在。当过程执行完毕,变量的存储空间被释放,在下一次执行该过程时所有局部变量将重新初始化。可以使用Static语句将局部变量定义为静态局部变量,这样过程结束后保存变量的值,即不释放变量占用的内存单元。StaticSsAsIntegerDimTtAsDouble4.6.2静态变量【例Ex_Plus】PrivateStaticFunctionFac(nAsInteger)DimfAsIntegerf=f+nFac=fEndFunctionPrivateSubForm_Click()DimiAsIntegerFori=1To5Print"∑";i&"="&Fac(i)NextiEndSub在过程定义语句中使用Static关键字,那么过程中定义的所有变量为静态局部变量。在点击窗体的事件过程中,通过For循环结构共调用了5次Fac函数过程。因为采用了静态变量,每次调用结束后,f的值被保存。假设定义的不是静态变量运行结果不同。将f设为模块级变量,运行结果相同。但模块内所有过程都能对f值进行修改,故容易出错。4.6.3过程的作用范围1过程的有效范围:Sub过程和Function过程的作用范围有全局过程和局部过程2种。通过Public和Private关键字定义。PrivateSub过程名〔参数列表〕仅在本模块才能访问PublicSub过程名〔参数列表〕程序的所有模块都能访问4.6.3过程的作用范围2过程的外部调用:外部调用是指调用其他模块中的全局过程。(1)调用窗体模块中的过程:必须以窗体名作为调用的前缀语法:Call窗体名.全局过程名[〔实参列表〕]例如:在窗体Form2中定义一个全局过程Sub1,在窗体1中调用该过程。PrivateSubForm_Click()CallForm2.Sub1EndSub4.6.3过程的作用范围(2)调用标准模块中的过程:语法:Call[标准模块名.]全局过程名[〔实参列表〕]假设在程序中过程名是唯一的,那么调用时不用加模块名。假设两个标准模块中含有同名的全局过程,那么在模块外调用必须加标准模块名作为前缀。例如:CallModule2.Sub14.6.4使用同名的变量在VB中允许不同应用范围内使用多个同名的变量,例如不同过程中出现同名的局部变量,局部变量与模块变量同名等情况。1不同模块中的全局变量同名:如果不同模块中的全局变量使用同一名字,在引用时需要用“模块名.变量名〞引用。例如:标准模块Module1PublicSsAsIntegerSs=1Module2.Ss=2标准模块Module2PublicSsAsIntegerSs=1Module1.Ss=24.6.4使用同名的变量2全局变量与局部变量同名:全局变量与局部变量同名时,局部变量在其所在过程内有效;在其他范围内全局变量有效。例如:窗体模块Form1PrivateSubForm_Click()

DimSsAsInteger

Ss=1EndSubPrivateSubcmd1_Click()

Ss=1EndSub标准

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论