Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Программирование, связанное с MS Office > Переменный путь для dll в vba |
Автор: Langaru 29.3.2018, 14:27 | ||
Доброго времени суток! Имеется файл dll и есть желание использовать его в своём проекте. При прописывании полного пути нахождения этого файла - всё работает прекрасно.
Собственно вопрос. Что нужно сделать, чтобы функции из данной библиотеки работали, когда dll находится в одной папке с ексель документом, вне зависимости от абсолютного пути папки. При объявлении только имени dll - вылезает ошибка "File not found". P.s. Данная библиотека свободно распространяема. Входит в состав программы Coolprop.org. |
Автор: Naghual 29.3.2018, 14:31 |
Найти в реестре регистрационную запись этой ДЛЛ. Если есть - взять путь к существующей оттуда. Если нет - Зарегистрировать и, см.п.1. |
Автор: Langaru 29.3.2018, 14:41 | ||
Проект должен работать на компьютерах с правами пользователя. Зарегистрировать библиотеку не представляется возможным. |
Автор: Akina 29.3.2018, 15:16 | ||
Так что не указывай путь, а DLL клади в папку с исполняемым файлом. Дополнительно - на всякий случай при открытии файла устанавливай текущий каталог, равный каталогу местоположения файла. |
Автор: Langaru 29.3.2018, 15:37 | ||||
Читал, пробовал. Не прокатило. У меня пишет, что файл не найден. Всё закинул по ссылке. https://yadi.sk/d/1_DDqSh53TstjV |
Автор: Akina 29.3.2018, 15:49 | ||
Ошибки при загрузке не возникает. В режиме отладки импортированные функции вроде работают... |
Автор: Langaru 29.3.2018, 16:04 | ||||
Добавил. Пробовал это и раньше. У меня результат тот же. https://yadi.sk/i/-7zgXTlY3TsxXh https://yadi.sk/i/dd3ppu6H3TsxV9 |
Автор: Akina 29.3.2018, 16:13 |
Сейчас проверил ещё раз "вчистую": распаковал архив в папку, открыл файл (система безопасности заблокировала макросы), открыл VBA-редактор, добавил код, закрыл с сохранением, открыл - ошибки нет, значения в ячейках пересчитаны с нуля на соотв. ненулевые. См. аттач. Так что ищи косяк в другом месте... например в настройках центра безопасности экселя. |
Автор: Langaru 29.3.2018, 17:38 | ||
Проделал тоже самое. Завелось. Переместил в другую папку всем составом - опять не работает. После этого открыл тот файл, где работало - там также не работает. |
Автор: Langaru 30.3.2018, 13:25 |
Протестировал на 13 разных компах - нигде не работает. Можно пример работающего файла, чтобы от него плясать? Всё, окончательно запутался. Но работает. Запустил этот файл через Libre Calc, он мне выдал связи с какими то файлами (эксель утверждал, что ничего нет). Грохнул все связи. Переоткрыл в экселе из проводника - всё работает. Запускаю тот же файл из UnrealComander - не работает. Закрываю, открываю из проводника - работает. Эксель только 1. Всегда открывается в нём. Объяснения не нашёл. Всем благодарности. Тему можно закрывать. |