powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Private Declare Sub xxx Lib "yyy.dll"
7 сообщений из 7, страница 1 из 1
Private Declare Sub xxx Lib "yyy.dll"
    #33152483
mihmih
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В макросе Excel использую функцию из внешней DLL:
Private Declare Sub xxx Lib "yyy.dll"

но неудобство в том, что эту DLL нужно класть в один из доступных по путям каталогов, что неудобно и не всегда возможно.
Как и можно ли подключать функции из рядом лежащего XLS-файла?
...
Рейтинг: 0 / 0
Private Declare Sub xxx Lib "yyy.dll"
    #33152732
Фотография rrrrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mihmihВ макросе Excel использую функцию из внешней DLL:
Private Declare Sub xxx Lib "yyy.dll". Как и можно ли подключать функции из рядом лежащего XLS-файла? :) А к первому внешняя функция откуда подключается? Еще из одного файла? Ну, тогда, если сможете все это превратить в "ленту Мебиуса", то это будет прорыв...
...
Рейтинг: 0 / 0
Private Declare Sub xxx Lib "yyy.dll"
    #33153638
mihmih
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, ошибся. Имелось ввиду то, что пользователю высылается два файла:
xxx.XLS и yyy.DLL - он их кладет РЯДОМ и запускает XLS. Бывает, что доступа в %SYSTEMDIR% и иже с ними нет, поэтому вариант просить пользователя скинуть DLL в "папку Windows" не катит - да и не спортивно это как-то...
...
Рейтинг: 0 / 0
Private Declare Sub xxx Lib "yyy.dll"
    #33153892
Фотография rrrrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Высылайте им инсталлятор (хоть RAR-SFX). Просто для VB есть Fusion, которой библиотеки вкладывает в exe, а для VBA - нет, по понятным причинам. Или класть библиотеку в заведомо доступный каталог? Можно ведь в декларации функции писать несистемный путь к библиотеке. Если книги Excel всегда кладутся в одно и то же место, то тогда так и делайте.
...
Рейтинг: 0 / 0
Private Declare Sub xxx Lib "yyy.dll"
    #33155561
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну можно делать вот так:

В Workbook_Open даешь команду:
ChDir ThisWorkbook.Path
В модуле с рабочим макросом делаешь объявление функции и используешь ее:
Private Declare Sub xxx Lib ".\yyy.dll"

то есть при открытии книги меняем каталог на тот в котором лежит открываемая книга, а потом объявляем внешнюю функцию по пути относительно текущего каталога.
...
Рейтинг: 0 / 0
Private Declare Sub xxx Lib "yyy.dll"
    #33155930
Фотография rrrrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто предположение: чисто теоретически, можно бинарный код библиотеки (целиком) поместить в один из листов книги. Потом создавать файл, записывать в него код - формировать библиотеку "на ходу" :) Только сложновато, наверное, я не пробовал.
...
Рейтинг: 0 / 0
Private Declare Sub xxx Lib "yyy.dll"
    #33159647
mihmih
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, White Owl - все отлично заработало.
Просто если исходить из минимального уровня пользователя, проще объяснить девочке Маше, что перед тем как уйти в отпуск она должна скопировать Кате всю папку ОТЧЕТ (в ней как раз Отчет.xls и *.dll), чем объяснять что такое каталог Windows и переменная %PATH%.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Private Declare Sub xxx Lib "yyy.dll"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]