版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、模块3 Visual Basic的过程任务1 过程的定义与调用 任务2 参数传送返回任务1 过程的定义与调用 3. 1. 1 过程的定义 1.利用“添加过程”对话框定义 打开窗体或模块的代码窗口,选择“工具”菜单中的“添加过程”命令,即可打开“添加过程”对话框,然后按对话框中的提示输入相应内容即可。在“名称”文本框内输入待定义过程的名称,在“类型”选项组中选中“子程序”单选按钮。要定义一个标准模块级或窗体级的局部过程,则选中“范围”选项组中的“私有的”单选按钮,然后单击“确定”按钮,则可建立一个子过程的模板,再编写所需的代码。可以根据需要选中“所有本地变量为静态变量”复选框。下一页返回任务1
2、过程的定义与调用 2.直接在代码窗口定义 进入代码窗口后,在左侧显示对象名的下拉列表框中选择“(通用)”,另外,在右侧显示过程的下拉列表框中选择“(声明)”,然后输入Sub及子程序名即可。系统会自动加上End Sub与子程序后的一对括号(),此时,即可输入子程序语句了。 格式: Private | Public Static Sub() Exit Sub End Sub 上一页下一页返回任务1 过程的定义与调用 其中: Public | Private:表示过程是“公用”或“私用”。Public过程可在整个程序范围内被调用,但必须指明该子过程所在的对象(如在Form 1中定义了Sub1,在Fo
3、rm2中想调用时,应该用Call Form1. Sub1,而Private过程只能在本窗体或模块中被调用。 Static :表示过程中的局部变量是静态变量,在过程被调用后,其值仍然被保留。 ():格式为ByVal | Bef As ByVal:表示参数为值传递方式,实参的值不随形参值的变化而变化。 Bef:表示参数为地址传递方式,实参的值随形参值的改变而改变。该项为默认项。参数:可以是变量名或数组名,当为数组名时,形参和实参在参数声明时应省略其维数,但括号 不能省略。多项时,中间用逗号隔开。 Exit Sub :退出过程。上一页下一页返回任务1 过程的定义与调用例如:Private Sub c
4、p (a As Integer , b As Integer)Ifa=0 ThenExit SubEnd If c1=a+b c2=a-b Print c1= ;c1; c2= ;c2End Sub上一页下一页返回任务1 过程的定义与调用 3. 1. 2过程的调用 1.使用can语句调用 格式:Call过程名(实参列表) 其中:实参的个数,数据类型都应与被调用过程的形参一一对应。如无参数,可以省略()。例如: Private Sub Command1 Click( ) str1$=“输入对活框” va=InputBox( va= ,str1$) vb=InputBox(vb= ,str1$)
5、Call cp( va,vb) End Sub 此时,将输入的值(va,vb)传递给形参a,b,然后在过程中计算。如果a =0,则退出该过程不作任何处理。上一页下一页返回任务1 过程的定义与调用 2.直接使用过程名调用 格式:过程名实参,实参 即:cp va , vb 过程中的代码通常需要某些有关程序执行状态的信息才能完成其工作。信息包括在调用过程时传递到过程内的变量。当将变量传递到过程时,称变量为参数。上一页返回任务2 参数传送 3. 2. 1形式参数和实际参数 过程的参数分为形参和实参两种。形参出现在过程定义中,在整个过程内都可以使用,离开该过程则不能使用。实参出现在主调过程中,进入被调过
6、程后,实参变量也不能使用。形参和实参的功能是进行数据传送。在函数调用时,主调过程把实参的值传送给被调过程的形参,从而实现主调过程向被调过程的数据传送。下一页返回任务2 参数传送 过程的形参和实参具有以下特点。 (1)形参只在过程内部有效,过程调用结束返回主调过程后则不能再使用该形参变量。一般情况下,实参在过程内部无效,而在主调过程中有效。 (2)实参可以是常量、变量和表达式等,在进行过程调用时,它们应该具有确定的值,以便把这些值传送给形参。 (3)实参和形参在数量上、类型上和顺序上要保持一致,防止对应错误。上一页下一页返回任务2 参数传送下面举例说明参数的传递过程,假如定义过程的代码为:Sub
7、add (a As Long,b As Long) Dim c As Long c=a*a + b*b Print cEnd Sub调用函数的代码为:Dim x As Long,y As Longx=5v=10Call add(5,6)程序中调用add过程时,将需要准备两个变量x和J作为实参,目的是通过调用add,使变量x和Y的数值传递到过程add中去进行计算,各个变量的相互关系可用图3一1来描述。上一页下一页返回任务2 参数传送 3. 2. 2按值传递参数 按值传递参数时,传递的只是变量的副本。如果在过程中改变了这个形参的值,则所进行的变动只影响副本而不会影响实参变量本身。可使用ByVal关
8、键字指出参数是按值来传递的,例如: PrivateSub Form Click() Dim x As Long,y As Long,z As Long x=5:y,=10:z=15 add1 x,v,z Print z 因为是按值传递,z的值并没有发生改变,保持15 End Sub 形参c是按值传递 Subadd1(a As Long,b As Long,ByVal c As Long) c=a*a + b*b End Sub add1过程的功能与add过程相似,只不过add1中形参c是按值传递的。上一页下一页返回任务2 参数传送 3. 2. 3按地址传递参数 按地址传递参数使过程用变量的内存
9、地址去访问实参变量的内容。结果将实参变量传递给过程时,通过调用过程改变实参变量的值。使用ByRef关键字指出参数是按地址来传递的,在VB中参数传递默认是按地址传递的,例如: PrivateSub Form Click() Dim x As Long,y As Long,z As Long x=5:y,=10:z=15 add1 x,v,z Print z 因为是地址传递的,z的值变为125 End Sub 形参c是地址传递 Subadd1(a As Long,h As Long,ByRef c As Long) c=a*a +b*b End Sub上一页下一页返回任务2 参数传送 add2的过
10、程跟add 1的区别就在于把形参c前面的ByVal修改成了ByRel,结果在Form_ Click事件过程中Print语句显示的结果就完全不同了。 VB中默认的是按地址传递参数,如果某形参是按地址传递参数,可以省略ByRef关键字。通常情况下,一个过程都有一个按地址传递参数,用以返回执行后的结果。即使形参指定是按地址传递参数,但当实参是一个表达式时,此时参数传递变成按值传递参数。例如,一个窗体上只有一个命令按钮Command 1 ,该窗体上设计如下事件过程:上一页下一页返回任务2 参数传送Private Sub Command1 Click()Dim x As Integerx=10Call
11、proc (x)Print xEnd SubPrivate Sub proc( ByRef a As Integer) Sub过程a=a+1Print aEnd Sub上一页下一页返回任务2 参数传送 在运行窗体时,单击该命令按钮,在窗体上输出的值分别为11和10。因为尽管pros的形参a是按地址传递参数,但调用它的实参为“(x)”,是一个表达式,所以在调用pros后不会改变实参x的值。 所以,当一个过程的参数是按地址传递的,而某次调用不会进行地址传递,可以将实参变量用括号括起来,变为一个表达式,这样调用过程时改为按值传递参数。上一页下一页返回任务2 参数传送 3. 2. 4传递一个数组 在vB中允许参数是数组,数组只能通过传地址方式进行传递。在传递数组时还要注意以下事项。 (1)在实参列表和形参列表中放入数组名,忽略维数的定义,但圆括号不能省。 (2)如果被调过程不知道实参数组的上下界,可用LBound和UBound函数确定实参数组的下界和上界。上一页下一页返回任务2 参数传送例如,以下过程用于求形参一维数组a的所有元素之和。Private Sub comparray(a()As Integer,ByRef s A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度安置住房产权分割买卖合同3篇
- 2025年度智能电网建设与运营承包合同含新能源并网与电力调度4篇
- 2025年度特种货车承包运营合同4篇
- 2025年度危化品车辆物流运输合同4篇
- 2025年度幼儿园教室窗帘安全性与环保性检测合同4篇
- 2025年度智能化城市景观承包设计工程合同4篇
- 2024试读生权益保障合同:学生试用条款明细版B版
- 2025年度智能充电桩设备集成采购合同4篇
- 2025年度二零二五年度竹林资源承包与生态旅游开发合同3篇
- 2025年度储藏室租赁与货物出入库管理服务协议3篇
- 2019级水电站动力设备专业三年制人才培养方案
- 室内装饰装修施工组织设计方案
- 洗浴中心活动方案
- 送电线路工程施工流程及组织措施
- 肝素诱导的血小板减少症培训课件
- 韩国文化特征课件
- 抖音认证承诺函
- 清洁剂知识培训课件
- 新技术知识及军事应用教案
- 高等数学(第二版)
- 肺炎喘嗽的中医护理常规
评论
0/150
提交评论