- 1、本文档共333页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3. 参数传递 * 【例5】参数传递方式示例 设置两个通用过程Test1和Test2,分别按值传递和按地址传递 Sub test1(ByVal t As Integer) t = t + 5 End Sub Sub test2(s As Integer) s = s - 5 End Sub Private Sub Form_Load() Dim x As Integer Show x = 5 Print 执行Test1前,x=; x Call test1(x) Print 执行Test1后,Test2前,x=; x Call test2(x) Print 执行Test2后,x=; x End Sub 运行结果 执行Test1前,x=5 执行Test1后,Test2前,x=5 执行Test2后,x=0 3. 参数传递 数组参数的传递 过程定义时,形参列表中的数组用数组名后的一对空的圆括号表示。 在过程调用时,实际参数表中的数组可以只用数组名表示,省略圆括号。 被调过程可通过Lbound和Ubound函数确定实参数组的上、下界。 当用数组作为过程的参数时,进行的不是“值”的传递,而是“址”的传递。 * 3. 参数传递 * 【例6】用数组作参数,求一维数组中的所有负元素之和。 Function sum%(b%()) Dim i% For i = LBound(b) To UBound(b) If b(i) 0 Then sum = sum + b(i) End If Next i End Function Private Sub Form_Click() Dim a%(10), s%, i% For i = 1 To 10 a(i) = Int(Rnd * 100) - 50 Print a(i); Next i Print s = sum(a()) Print 数组中的负元素之和为:; s End Sub 4. 可选参数与可变参数 可选参数 * 【例7】编写计算两个数的乘积过程,它能可选择地乘以第三个数。 Sub multi(fir As Integer, sec As Integer, Optional third) n = fir * sec If Not IsMissing(third) Then n = n * third End If Print n End Sub Private Sub Form_Click() multi 10, 20, 30 End Sub 运行结果:200 运行结果:6000 参数表中最后必须用Optional关键字,且必须是Variant类型。 并在过程中通过IsMissing函数测试调用时是否传送可选参数。 Private Sub Form_Click() multi 10, 20 End Sub 4. 可选参数与可变参数 可变参数 * 【例8】编写计算多个数的乘积过程。 Sub Multi(ParamArray Num()) n = 1 For Each x In Num n = n * x Next x Print n End Sub 运行结果:720 Printf是一个可变参数函数。 ParamArray是一个可变参数过程。 格式:Sub 过程名( ParamArray 数组名) 数组名:是形参,只有名字和括号,没上下界。 Variant类型 Private Sub Form_Click() Multi 2, 3, 4, 5, 6 End Sub 5. 对象参数 窗体参数 * 【例9】设计一个多窗体的程序,该程序有4个窗体,要求它们的位置、大小都相同。 Sub FormSet(formnum As Form) formnum.Left = 2000 formnum.Top = 3000 formnum.Width = 5000 formnum.Height = 3000 End Sub Form1: Private Sub Form_Load() FormSet Form1 FormSet Form2 FormSet Form3 FormSet Form4 End Sub Private Sub Form_Click() Form1.Hide Form2.Sho
文档评论(0)