2016-07-04 3 views
3

Я пишу макрос VBA для Microsoft Excel 2010.Дополнительные методы в модуле класса, реализующие интерфейс в VBA

Некоторые из модулей в моем проекте действительно крикнуть для подклассов, но я уже понял, что наследование не поддерживается.

Зная это, я прошел жесткий путь и реализовал все методы снова в каждом модуле с использованием интерфейса.

Однако, теперь я переживаю, что метод, который встречается, только в одном из модулей (но не в интерфейсе) бросает исключение:

Метод или член данных не найден!

Я не совсем уверен, но у меня такое ощущение, что это как-то связано с интерфейсом.

Поэтому я хотел бы знать следующее:

  • При реализации интерфейса в модуле в VBA, это еще можно написать дополнительные государственные подлодки для этого модуля?
  • Если это невозможно, каков будет правильный шаблон для добавления определенных функций к модулю, который реализует интерфейс?
+3

Если вы объявляете переменную как класс интерфейса, вы можете вызывать только методы/свойства этого интерфейса. – Rory

+0

Вы имеете в виду статическое связывание, верно? Тем не менее, я объявил переменную «реальным классом», а не классом интерфейса ... Должен ли он работать? – speendo

+2

Да, он должен. Если вы не публикуете код, мы не можем сказать вам, почему это не так. – Rory

ответ

2

Если вы объявляете переменную как класс интерфейса, вы можете вызывать только методы/свойства этого интерфейса, независимо от каких-либо других методов/свойств, открытых самим типом объекта.

Смежные вопросы