Создание / использование пользовательских библиотек VBA в Excel - PullRequest
0 голосов
/ 28 декабря 2011

Я работал над проектом для моей команды на работе.Электронная таблица Excel 2003 находится в NT NFS, поэтому все могут ее использовать.Мне нравятся XLA, но их раздражает то, что они не зависят от рабочей книги.Установка для одного устанавливает для остальных, и наоборот.С другими языками во время компиляции вы можете легко связать библиотеки для определенных исходных файлов.

Мне было интересно, возможно ли иметь зависимые от книги пользовательские библиотеки VBA Excel и как это сделать?Спасибо

Ответы [ 2 ]

1 голос
/ 29 декабря 2011

Я использую CustomDocumentProperties для этой цели.Надстройка содержит весь код, а «шаблон» - это документ для работы.В шаблоне создайте CustomDocumentProperty с именем «MyApp» или что-то еще.В надстройке используйте события уровня приложения для мониторинга вызовов workbook_open.В этом случае проверьте, содержит ли открытая книга CustomDocumentProperty для вашего приложения.Если это так, откройте пользовательский интерфейс надстройки (например, сделайте меню видимым).

См. Также http://www.dailydoseofexcel.com/archives/2004/07/16/custom-document-properties/

В этом примере я использую событие Window_Activate.Если правильный тип рабочей книги активирован, я показываю пользовательскую панель инструментов.Если он деактивирован, я его скрываю.

0 голосов
/ 20 апреля 2012

Я решил написать свой собственный код для загрузки и выгрузки надстроек в зависимости от того, какие рабочие книги открыты. Это было больно, но достигло желаемой функциональности. Чтобы они могли быть доступны всем, я поместил их в NFS и сделал их доступными только для чтения. Когда я хочу изменить библиотеки, я кратко открываю их для записи.

...