单选题 在窗体上有一个命令按钮Command1,编写事件代码如下:
Private Sub Command1_Click()
Dim x As Integer,y As Integer
X=12:y=32
Call Proc(x,y)
End Sub
Public Sub Proc{h As Integer,ByVal m As Integer}
n=nMod 10
m=mMod 10
End Sub
打开窗体运行后,单击命令按钮,立即窗口上输出的结果是______。
  • A.2 32
  • B.12 3
  • C.2 2
  • D.12 32
【正确答案】 A
【答案解析】[解析] 在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参;若用ByRef声明,说明此参数为传址调用,此时形参的变化将会返回到实参;没有说明传递类型,则默认为传址传递。因此调用函数实参x是传址方式传递,实参y为传值方式传递,调用函数后x值在函数中随形参改变,即x=x mod 10=12 mod 10=2,而y不随之改变。