VBA过程、过程参数传递、变量的作用域和生存期
1.子过程与函数过程
(1)要求:编写一个求!的子过程,然后调用它计算的值。
操作步骤:
新建一个标准模块“M3”,打开VBE窗口,输入以下子过程代码:
Sub Factor1(n As Integer, p As Long)
Dim i As Integer
p = 1
For i = 1 To n
p = p * i
Next i
End Sub
Sub Mysum1()
Dim n As Integer, p As Long, s As Long
For n = 1 To 10
Call Factor1(n, p)
s=s+p
Next n
Msgbox "结果为:" & s
End Sub
运行过程Mysum1,保存模块M3。
(2)要求:编写一个求函数,然后调用它计算的值
操作步骤:双击标准模块“M3”,打开VBE窗口,输入以下代码:
Function Factor2(n As Integer)
Dim i As Integer, p As Long
p = 1
For i = 1 To n
p = p *i
Next i
Factor2 = p
End Function
修改Mysum1()过程,代码如下:
Sub Mysum1()
Dim n As Integer, s As Long
For n = 1 To 10
s = s + Factor2(n)
Next n
MsgBox "结果为:" & s
End Sub
运行过程Mysum1,理解函数过程与子过程的差别,最后保存模块M3。
2.过程参数传递、变量的作用域和生存期
(1)要求:阅读下面的程序代码,理解过程中参数传递的方法。
操作步骤:双击标准模块“M3”,打开VBE窗口,输入以下程序代码:
Sub Mysum2()
Dim x As Integer, y As Integer
x = 10
y = 20
Debug.Print "1,x="; x, "y="; y
Call add(x, y)
Debug.Print "2,x="; x, "y="; y
End Sub
Private Sub Add(ByVal m, n)
m = 100
n = 200
m = m + n
n = 2 * n + m
End Sub
运行Mysum2过程,单击“视图”→“立即窗口”菜单命令,打开立即窗口,察看程序的运行结果。运行结果为______________________。
(2)要求:阅读下面的程序代码,理解参数传递、变量的作用域与生存期。
操作步骤:新建窗体,进入窗体的设计视图,在窗体的主体节中添加一个命令按钮,设置命令按钮“名称”属性设置为“Command1”,单击“代码”按钮,进入VBE窗口,输入以下代码:
OptionCompare Database
Dim x AsInteger
Private SubForm_Load()
x = 3
End Sub
Private SubCommand1_Click()
Static a As Integer
Dim b As Integer
b = x ^ 2
Fun1 x,b
Fun1 x,b
MsgBox "x = " & x
End Sub
Sub Fun1(ByRefy As Integer, ByVal z As Integer)
y = y + z
z = y - z
End Sub
切换至窗体视图,单击命令按钮,观察程序的运行结果,x=______。最后保存窗体,窗体名称为“Form7_4”。
领取专属 10元无门槛券
私享最新 技术干货