Я следую этому руководству от RubberduckVBA и наткнулся на этот фрагмент кода, но понятия не имею, что он на самом деле делает:
With New MyTestableMacro
.Run dataServiceStub, wsServiceStub
End With
Я попытался найти "Новое ключевое слово в операторе With", а также несколько других вещей, но ничего не нашел об этом.
Это не код, который я видел за год работы с VBA...
Я также пытался создать класс с именем MyTestableMacro
с помощью метода Run
, который также не работал.
Чтобы было ясно, я хочу знать, что такое MyTestableMacro
. Это класс, модуль, временный макрос? И находится ли внутри него метод/функция Run A?
With
храниться самим блокомWith
; объект создается с ключевым словомNew
, его ссылка принадлежит блокуWith
, и когда выполнение достигаетEnd With
, объект уничтожается. Вы можете проверить это, поместив операторыDebug.Print
в обработчикиClass_Initialize
иClass_Terminate
модуля класса, например.Debug.Print "hello"
вClass_Initialize
, затемDebug.Print "goodbye"
вClass_Terminate
и затемDebug.Print "doing the work"
в методеRun
. 25.04.2018MyTestableMacro
должен быть модулем класса, как вы выразились? 26.06.2018