|
(〜渡し)と言えば渡すほうに主導権があると思います。他のプロシージャへ変数を受け渡しするとき呼出元でのステートメントの書き方は Call mySub (a)などの様に、どの渡しでも同じです。しかし呼出先プロシージャでは受ける変数の前にByRef又はByValと区別しています。つまり(〜渡し)は呼出元ではなく呼出先プロシージャの主導権によって決定されると言っていいのではないでしょうか。すれば(〜渡し)と言うより(〜受け)と言ったほうがよいのではないかと思います。しかし下記のプロシージャでは呼出先でByRefと参照渡しを指定しているのにかかわらず、値渡しになるようです。ここでは、Callステートメントを使用しないでmySub(a)と変数を()で括ると値渡しになり呼出元が主導権を握っています。言いたいことは、(〜渡し)は呼出元プロシージャによって決まるか呼出先プロシージャなのかと言うことです。
Sub Test() Sub mySub(ByRef aa As String)
Dim a As String aa="エクセル"
a="Excel" End Sub
mySub(a)
MsgBox a
End Sub
どなたか説明できる方はよろしくお願いいたします。
|
|