Надстройка VBA: как "встроить" нужные справочные библиотеки? Получение "Ошибка компиляции в скрытом модуле" при отправке функциональной надстройки другим пользователям
Я написал надстройку PowerPoint, которая хорошо работает на моем локальном компьютере. Тем не менее, когда я посылаю файл по электронной почте другим, внезапно половина функций перестает работать и показывает ошибку компиляции, как указано в строке темы.
Если копнуть немного глубже, похоже, проблема в том, что на клиентских компьютерах нет правильных справочных библиотек (например, библиотека объектов Excel 14.0, Outlook, Access и т. Д.). Я правильно ссылаюсь на эти библиотеки при записи надстройки в виде файла pptm, но представьте, что когда я сохранял pptm в файле ppam, справочные библиотеки как-то "терялись".
У кого-нибудь есть какие-либо идеи? Обратите внимание, что добавление ссылочных библиотек непосредственно на клиентские компьютеры не помогает. Вместо этого мне нужно отправить клиенту базовый файл pptm, добавить справочные библиотеки, а затем сохранить этот файл как файл ppam на клиентском компьютере напрямую, что, конечно, нецелесообразно. Так как же "встраивать" справочные библиотеки в надстройку?
Спасибо!
1 ответ
Так как же "встраивать" справочные библиотеки в надстройку?
Вы не
Альтернатива:
Вместо Раннего связывания используйте Позднее связывание.
Пример кода раннего связывания.
Здесь мы устанавливаем ссылку на библиотеку объектов MS Word xx.xx.
Sub Sample()
Dim oWrd As Word.Application
Dim oDoc As Word.Document
Set oWrd = New Word.Application
Set oDoc = oWrd.Documents.Open("....")
'
'~~> Rest of the code
'
End Sub
Преобразование вышеупомянутого в Позднее связывание.
Здесь мы не устанавливаем ссылку, но позволяем коду привязываться к любой версии MS Word, имеющейся на целевом ПК.
Sub Sample()
Dim oWrd As Object
Dim oDoc As Object
Set oWrd = CreateObject("Word.Application")
Set oDoc = oWrd.Documents.Open("....")
'
'~~> Rest of the code
'
End Sub
Точно так же вы можете изменить свой код для MS-Excel.