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 が表示されます。括弧内または ':=" で引数を渡すことに違いがある理由を説明する場所が見つかりません。誰か理由を知っていますか?