Проблема с загрузкой функций DLL в Excel 365 VBA - PullRequest
0 голосов
/ 15 марта 2019

У меня есть код vba, который отлично работает с версий Office 2003 до 2016.

Недавно компания переехала в офис 365, и тот же код не может загрузить функции из DLL.

Одна из функций в качестве примера:

Public Declare PtrSafe Function hllapi_init Lib "C:\Windows\SysWOW64\libhllapi.dll" (ByVal tp As String) As Long

Но при вызове функции vba / excel показывает ошибка времени выполнения 48 «файл не найден» , даже если в объявлении указан полный путь.

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

Что с 365 версией? Искал документацию по объявлению функций и / или API, но не нашел ничего конкретного для версии 365.

Кроме того, оператор #if, обычно используемый для адаптации функций dll и вызовов API через 32-битные и 64-битные Windows и Office в паре (или нет) с командой ptrsafe, кажется, полностью игнорируется в этой версии 365.

Если такое же объявление, приведенное выше, указано в условии #if в верхней части модуля, vba не распознает функцию, возвращающую ' sub ошибка компиляции vba или функция не определена'.

EDIT: Просто добавив информацию, которая может иметь отношение (я не знаю): Запуск Windows 10 64bit , Офис 365 32бит , DLL находится в папке SYSWOW64 ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...