Можно ли ссылаться на переменную with-block по ключевому слову в VBA?

Есть ли ключевое слово для переменной with-block? Если это ключевое слово будет, например, This, будет работать следующий код:

With New myType
    .DoSomething
    DoSomethingElse "abc", This, 123
End With

person Erik på kontoret    schedule 20.04.2018    source источник


Ответы (2)


вы можете добавить следующий Function в свой MyType класс

Public Function This() As MyType
    Set This = Me
End Function

чтобы ваш основной код мог использовать его следующим образом:

With New MyType
    .DoSomething
    DoSomethingElse "abc", .This, 123

End With
person DisplayName    schedule 20.04.2018
comment
Довольно интересно и умно. Не такой уж анонимный анонимный экземпляр. :) - person S Meaden; 20.04.2018
comment
@SMeaden, довольно забавное, но интересное определение - person DisplayName; 20.04.2018

Боюсь, такого ключевого слова не существует. В Visual Basic я написал для этого метод расширения .Myself. В VBA я не знаю решения. Конечно, вы можете использовать локальную переменную.

Set a = New mytype
a.DoSomething
DoSomethingElse "abc", a, 123
person VV5198722    schedule 20.04.2018