选择题   在窗体中有一个命令按钮Command1,对应的事件代码如下:
    Private Sub Command1_Click()
    Dim a As Integer
    Dim b As Integer
    a=16:b=66
    Call Proc(a,b)
    Debug.Print a;b
    End Sub
    Public Sub Proc(ByVal x As Integer, ByRef y As Integer)
    x=x Mod 10
    y=y Mod 10
    End Sub
    打开窗体运行后,单击命令按钮,立即窗口上输出的结果是______。
 
【正确答案】 D
【答案解析】在VBA的过程调用,形参有传值调用和传址调用两种类型。如果在过程声明时形参用ByVal声明,说明此参数为传值调用,此时形参值的变化不会反馈、影响实参的值;如果用ByRef声明,说明此参数为传址调用,此时形参值的变化会反馈、影响实参的值;如果没有声明,那么默认为传址调用。本题形参x是传值调用,y是传址调用,因此,运行后a的值没有改变,a=16;b的值改变了,b=b Mod 10=66 Mod 10=6。