Надстройка Excel (VBA): как не предоставлять объекты Workbook и Worksheet другим книгам с помощью надстройки - PullRequest
1 голос
/ 17 октября 2019

У меня есть .xlam Excel Addin, который предоставляет некоторые функции и типы. Я скрываю любые функции и модули, не предназначенные для внешнего вызова с использованием Option Private Module, поэтому они недоступны извне и не отображаются в Intellisense. Эта проблема заключается в том, что ThisWorkbook и все рабочие листы (скрытые или иные) в надстройке также отображаются.

Давайте назовем VBAP-проект в этом дополнении MyVBAProject. В рабочую книгу клиента добавлена ​​ссылка на MyVBAProject. Затем Intellisense перечисляет доступные функции в надстройке, когда набирается MyVBAProject.. Это здорово, но в нем также перечислены ThisWorkbook и все рабочие листы в .xlam (например, Sheet1). Это включает в себя любые функции, определенные в модуле «Рабочий лист»: MyVBAProject.Sheet1.YouShouldNotSeeThisFunction()

Мне требуются некоторые настройки для модулей «Рабочая книга» и «Рабочий лист», эквивалентные установке «Инстансинг в качестве частного» для модулей класса, как это используется по умолчанию. Кто-нибудь нашел решение для этого? Я пытаюсь научить пользователей надстройки использовать Intellisense, и хочу, чтобы он показывал и показывал только то, на что им разрешено ссылаться.

...