二级Visual Basic考试课件第九章 过程

上传人:我*** 文档编号:142614286 上传时间:2020-08-21 格式:PPT 页数:81 大小:768.50KB
返回 下载 相关 举报
二级Visual Basic考试课件第九章 过程_第1页
第1页 / 共81页
二级Visual Basic考试课件第九章 过程_第2页
第2页 / 共81页
二级Visual Basic考试课件第九章 过程_第3页
第3页 / 共81页
二级Visual Basic考试课件第九章 过程_第4页
第4页 / 共81页
二级Visual Basic考试课件第九章 过程_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《二级Visual Basic考试课件第九章 过程》由会员分享,可在线阅读,更多相关《二级Visual Basic考试课件第九章 过程(81页珍藏版)》请在金锄头文库上搜索。

1、第九章 过程,9.1 Sub过程,9.2 Function过程,9.3 参数传递,9.4 可选参数与可变参数,9.5 对象参数,9.6 局部内存分配,9.7 Shell函数,9.8 应用举例,将程序分割成较小的逻辑部件就可以简化程序设计任务,称这些部件为过程,它们可以变成增强和扩展 Visual Basic 的构件。VB中有两类过程,一类是内部过程,另类是外部过程,每类过程又可分为函数过程和事件过程。内部过程是由系统提供的、不需要用户编写、可直接用过程名调用的程序段。外部过程是由用户根据自己的需要定义和编写的、可供事件过程多次调用的程序段。过程的使用,一方面将大的程序分成离散的逻辑单元,方便程

2、序的调试;另一方面,方便了其他的程序或过程的调用。,Visual Basic的应用程序是由过程组成的。在用Visual Basic设计应用程序时,除了定义常量和变量外,全部工作就是编写过程。Visual Basic 中的过程可以看作是编写程序的功能模块。从本质上说,使用过程是在扩充Visual Basic的功能。 在前面的各章中,已多次见过事件过程,这样的过程是当发生某个事件(如Click、Load、Change)时,对该事件作出响应的程序段,这种事件过程构成Visual Basic应用程序的主体。有时候,多个不同的事件过程可能需要使用一段相同的程序代码,因此可以把这段代码独立出来,作为一个过

3、程,这样的过程叫做“通用过程”(general procedure),它可以单独建立,供事件过程或其他通用过程调用。,在Visual Basic中,通用过程分为两类,即子程序过程和函数过程,前者叫做Sub过程,后者叫做Function过程。此外,Visual Basic也允许用GosubReturn语句来实现子程序调用,但它不能作为Visual Basic的过程。 在本章中,将介绍如何在Visual Basic应用程序中使用通用过程。 9.1 Sub过程 Visual Basic提供了子程序过程和函数过程。为了便于区分,在今后的叙述中,我们把SubEnd Sub 定义的子程序叫做子程序过程或S

4、ub过程,而把由FunctionEnd Function定义的函数叫做函数过程或Function过程。这一节介绍Sub过程的定义和调用,下一节将介绍Function过程。,1. Sub过程 (1)定义Sub过程 通用Sub过程的结构与事件过程的结构类似。一般格式如下: StaticPrivatePublicSub 过程名(参数表列) 语句块 Exit Sub 语句块 End Sub 用上述格式可以定义一个Sub过程,例如: Private Sub Subtest( ) Print “This is a Sub procedure” End Sub,说明: (1) Sub过程以Sub开头,以En

5、d Sub结尾,在Sub和End Sub之间是描述过程操作的语句块,称为“过程体”或“子程序体”。格式中各参量的含义如下: Static:指定过程中的局部变量在内存中的默认存储方式。如果使用了Static,则过程中的局部变量就是“Static”型的,即在每次调用过程时,局部变量的值保持不变;如果省略“Static”,则局部变量就默认为“自动”的,即在每次调用过程时,局部变量被初始化为0或空字符串。Static对在过程之外定义的变量没有影响,即使这些变量在过程中使用。 Private:表示Sub过程是私有过程,只能被本模块中的其他过程访问,不能被其他模块中的过程访问。,Public:表示Sub过

6、程是公有过程,可以在程序的任何地方调用它。各窗体通用的过程一般在标准模块中用Public定义,在窗体层定义的通用过程通常在本窗体模块中使用,如果在其他窗体模块中使用,则应加上窗体名作为前缀。 过程名:是一个长度不超过255个字符的变量名,在同一模块中,同一个变量名不能既用作Sub过程名又用作Function过程名。 参数表列:含有在调用时传递给该过程的简单变量名或数组名,各名字之间用逗号分隔。“参数表列”指明了调用时传递给过程的参数的类型和个数,每个参数的格式为: ByVal变量名()As数据类型,这里的“变量名”是一个合法的Visual Basic变量名或数组名,如果是数组,则要在数组名后加

7、上一对括号。“数组类型”指的是变量的类型,可以是Integer、Long、Single、Double、String、Currency、Variant或用户定义的类型。如果省略“As数据类型”,则默认为Variant。“变量名”前面的“ByVal”是可选的,如果加上“ByVal”,则表明该参数是“传值”(即:为值传递) Passed by Value)参数,没有加“ByVal”(或者加ByRef)的参数称为“引用” (即:为地址传递) (Passed by Reference)参数。有关参数的传递问题将在9.3节介绍。,在定义Sub过程时,“参数表列”中的参数称为“形式参数”,简称“形参”,不能

8、用定长字符串变量或定长字符串数组作为形式参数。不过,可以在调用语句中用简单定长字符串变量作为“实际参数”,在调用Sub过程之前,Visual Basic把它转换为变长字符串变量。 (2)End Sub标志着Sub过程的结束。为了能正确运行,每个Sub过程必须有一个End Sub子句。当程序执行到End Sub时,将退出该过程,并立即返回到调用语句的后继语句。此外,在过程体内可以用一个或多个Exit Sub语句从过程中退出。 (3)Sub过程不能嵌套。也就是说,在Sub过程内,不能再定义Sub过程或Function过程;不能用GoTo语句进入或转出一个Sub过程,只能通过调用执行Sub过程,而且

9、可以嵌套调用。,下面是一个Sub过程的例子: Sub Tryout(x As Integer,ByVal y As integer) x=x+100 y=y*6 Print x,y End Sub 上面的过程有两个形式参数,其中第二个形参的前面有ByVal,表明该参数是一个值传递参数。 过程可以有参数,也可以不带任何参数。没有参数的过程称为无参过程。例如:,Sub ContinueQuery() Do Response$=InputBox$(“Continue(Y or N)?”) If Response$=“N” Or Response$=“n” Then End If Response$=

10、“Y” Or Response$=“y” Then Exit Do Loop End Sub 上述过程没有参数,当调用该过程时,询问用户是否继续某种操作,回答“Y”继续,回答“N”则结束程序。对于无参过程,调用时只写过程名即可。,2建立Sub过程 前几章已涉及如何建立事件过程。通用过程不属于任何一个事件过程,因此不能放在事件过程中。通用过程可以在标准模块中建立,也可以在窗体模块中建立。如果在标准模块中建立通用过程,可以使用以下两种方法: 第一种方法,操作步骤如下: (1)执行“工程”菜单中的“添加模块”命令,打开“添加模块”对话框,在该对话框中选择“新建”选项卡,然后双击“模块”图标,打开模块

11、代码窗口。 (2)执行“工具”菜单中的“添加过程”命令,打开“添加过程”对话框。如下图所示:,图 “添加过程”对话框,(3)在“名称”框内输入要建立的过程名字(例如Tryout)。 (4)在“类型”栏内选择要建立的过程的类型,如果建立子程序过程,则应选择“子程序”;如果要建立函数过程,则应选择“函数”。 (5)在“范围”栏内选择过程的适用范围,可以选择“公有的”或“私有的”。如果选择“公有的”,则所建立的过程可用于本工程内的所有窗体模块;如果选择“私有的”,则所建立的过程只能用于本标准模块。 (6)单击“确定”按钮,回到模块代码窗口。 此时可以在Sub和End Sub之间键入程序代码(与事件过

12、程的代码输入相同)。,第二种方法:执行“工程”菜单中的“添加模块”命令,打开模块代码窗口,键入过程的名字。例如,键入“ Sub Tryout()”,按回车键后显示: Sub Tryout() End Sub 即可在Sub和End Sub之间键入程序代码。 在模块代码窗口中,通用过程出现在“对象”框的“通用”项目下, 其名字可以在“过程”框中找到。,过程框中自动加入名字Tryout,模块代码窗口,如果在窗体模块中建立通用过程,则可双击窗体进入代码窗口,在“对象”框中选择“通用”,在“过程”框中选择“声明”,直接在窗口内键入“Sub Tryout()”,然后按回车键,窗口内显示: Sub Tryo

13、ut() End Sub 此时即可键入代码。,直接键入Sub Tryout(),但尚未按回车健,屏幕显示,3. 调用Sub过程 调用即为执行过程。也就是说,要执行一个过程,首先必须调用该过程。 Sub过程的调用有两种方式,一种是使用Call语句,一种是把过程名作为一个独立语句来使用。 1) 用Call语句调用Sub过程 格式:Call 过程名(实际参数) Call语句把程序控制传递到一个Visual Basic的Sub过程。用Call语句调用一个过程时,如果过程本身没有参数,则“实际参数”和括号可以省略;否则应给出相应的实际参数,并把参数放在括号中。“实际参数”(实参)是传递给Sub过程的变量

14、或常数。例如: Call Tryout(a,b),2) 把过程名作为一个语句来使用 在调用Sub过程时,如果省略关键字Call,就成为调用Sub过程的第 二种方式。与第一种方式相比,它有两点不同: (1)去掉了关键字Call; (2)去掉了“实际参数”的括号。 例如: Tryout a,b,3. 通用过程与事件过程 事件过程也是Sub过程,但它是一种特殊的Sub过程,它附加在窗体和控件上。一个控件的事情过程由控件的实际名字(Name属性)、下划线和事件名组成;而窗体事件过程由“Form”、下划线和事件名组成。也就是说,窗体的事件过程不能由用户任意定义,而是由系统指定。控件事件过程的一般格式为:

15、 Private|PublicSub 控件名_事件名(参数表) 语句组 End Sub 窗体事件过程的一般格式为: Private|PublicSub Form_事件名(参数表) 语句组 End Sub,可以看出,除了名字外,控件事件过程与窗体事件过程的格式基本上是一样的。在大多数情况下,通常是在事件过程中调用通用过程。实际上,由于事件过程也是过程(Sub过程),因此也可以被其他过程调用(包括事件过程和通用过程)。 通用过程可以放在标准模块中,也可以放在窗体模块中,而事件过程只能放在窗体模块中,不同模块中的过程(包括事件过程和通用过程)可以互相调用。当过程名唯一时,可以直接通过过程名调用;如果

16、两个或两个以上的标准模块中含有相同的过程名,则在调用时必须用模块名限定,其一般格式为: 模块名.过程名(参数表) 一般来说,通用过程(包括Sub过程、Function过程)之间、事件过程之间、通用过程与事件过程之间,都可以互相调用。,9.2 Function 过程 前面介绍了Sub过程,它不直接返回值,可以作为独立的基本语句调用。而Function过程要返回一个值,通常出现在表达式中。这一节将介绍Function过程的定义和调用。,1 建立Function过程 Function过程定义的格式如下: StaticPrivatePublicFunction过程名(参数表列)As 类型 语句块 过程名表达式 Exit Function 语句块 End Function,说明: (1)Function过程以Function开头,以End Function结束,在两者之间是描述过程操作的语句块,即“过程体”或“函数体”。格式中的“过程名”、“参数

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号