С новым MyTestableMacro .Run - Что он делает? - PullRequest
0 голосов
/ 25 апреля 2018

Я следую этому учебнику от RubberduckVBA и наткнулся на этот фрагмент кода, но понятия не имею, что он на самом деле делает:

With New MyTestableMacro
    .Run dataServiceStub, wsServiceStub
End With

Я пытался найти "Новое ключевое слово в операторе With" , а также некоторые другие вещи, но ничего о них не найдено.

Это не тот код, который я видел за год работы в VBA ...

Я также пытался создать класс с именем MyTestableMacro с помощью метода Run, который также не работал.

Просто чтобы прояснить, я хочу знать, что такое MyTestableMacro,Это класс, модуль, временный макрос?И есть ли в нем метод / функция Run A?

1 Ответ

0 голосов
/ 25 апреля 2018

Концептуально это ничем не отличается от следующего кода:

Dim something As MyTestableMacro
Set something = New MyTestableMacro
With something
    ...
End With

Обратите внимание, что нам нужно было Dim переменную, а затем инициализировать ее ключевым словом New. Но мы можем вырезать 2 дополнительные строки, сжимая их в один оператор:

With New MyTestableMacro
    ...
End With

Что касается вашего другого вопроса - MyTestableMacro должен быть модулем класса. Иначе вы бы вообще не смогли New. И Run обычно будет Public методом (может быть Sub или Function, учитывая синтаксис, использованный в вашем посте). Метод Private не будет работать. Friend будет работать только в рамках одного проекта VBA, но очень редко можно увидеть метод, использующий Friend вместо Public или Private.

...