ByRef не работает в VBA с типом значения из класса

До сих пор я всегда успешно использовал 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

Anybody?

6
задан André Chalella 14 May 2012 в 16:25
поделиться