今まで、私はいつもByRef
うまく使っていました。Double
クラスオブジェクトからを変更する関数が必要です。説明のために、次のプログラムについて考えてみます。
Class1.cls:
Public d As Double
Sub Test()
Dim c As Class1, d As Double
Set c = New Class1
c.d = 5
d = 5
ChangeVar c.d
ChangeVar d
Debug.Print c.d
Debug.Print d
End Sub
Sub ChangeVar(ByRef d As Double)
d = 10
End Sub
驚いたことに、上記の例は次のように出力されます
5
10
誰か?