2014-11-19 2 views
1

У меня есть значительный банк модулей VBA, написанный в надстройке Excel 2010. Некоторые из них специфичны для Excel, но многие из них более общие. Например, один принимает номер детали и переформатирует его; другой содержит функцию выбора случая, чтобы найти файл в сетевом диске.Совместное использование модулей VBA в приложениях MS Office

Я хочу использовать общие функции в Word и Outlook. Я мог бы копировать и вставлять файлы из надстроек Excel в Word, но это затрудняет обновление моего кода - когда я делаю редактирование в одном приложении, я должен помнить, что нужно копировать все остальные.

Мой вопрос: есть ли какие-либо средства для написания общего кода в одном месте (например, в надстройке Excel или в другом общем месте), чтобы все приложения MS Office могли получить к нему доступ, если это просто еще один модуль ?

ответ

2

Как это было сделано, нужно было взять ваш код и скомпилировать его в библиотеку COM (или ActiveX) с помощью Visual Basic 6. Затем вы можете добавить эту DLL, используя редактор инструментов «Инструменты ... Ссылки» VBA, диалоговое окно из любого продукта Office (или другого), поддерживающего VBA, так же, как вы можете использовать, например, Microsoft Scripting Runtime, который является супер-удобным для таких вещей, как Dictionary, FileSystemObject и TextStream.

Проблема в том, что VB6 был выпущен когда-то в 1998 году и не был доступен или поддерживался Microsoft уже много лет. Кажется, что есть несколько сайтов для скачивания, предлагающих пакет, - я не могу предложить никаких советов относительно законности или проблем безопасности, которые могут возникнуть при их использовании.

Позорно, Microsoft отбросила мяч VBA несколько лет назад - кажется, они в основном желают, чтобы это просто исчезло.

1

Для этого вам потребуется создать надстройку COM (DLL), для которой потребуется Visual Studio или какой-либо другой инструмент, способный создавать COM-открытые аддины. В Office не было никаких средств для работы со старым выпуском Office Developer.

1

VB6 - лучший способ. VB6 по-прежнему поддерживается для скомпилированных программ. IDE была протестирована и обнаружила, что она работает до Windows 10 (только 32 бит) от MS, но не поддерживается.

Если вы хотите конвертировать в vbscript, вы можете использовать файлы wsc вместо dll.

Из компонентов сценариев Обзор компонентов

Windows® Script являются захватывающие новые технологии, что позволяет создавать мощные, многократно используемые компоненты COM с помощью простых в использовании языков сценариев, таких как Microsoft® Visual Basic® Scripting Edition (VBScript) и Microsoft® JScript®.

Сделайте одно, создайте библиотеку типов, установите ссылку на typelibrary в Word и Excel.

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