1

vba で引数を渡すことに関しては、たとえば、「:=」を使用して引数を明示的に指定するのではなく、引数を括弧で渡した場合、ByRef の動作が異なるようです。

Sub CallingProcedure()
    Dim a As Long
    a = 123
    CalledProcedure (a)
    MsgBox (a)
    CalledProcedure x:=a
    MsgBox (a)
End Sub

Sub CalledProcedure(ByRef x As Long)
    x = 321
End Sub

最初の MessageBox には 123 が表示されますが、2 番目には 321 が表示されます。括弧内または ':=" で引数を渡すことに違いがある理由を説明する場所が見つかりません。誰か理由を知っていますか?

4

0 に答える 0