Страницы: 1
RSS
Как узнать GUID доступной, но не подключенной библиотеки, Подключения библиотек случае когда неизвестен GUID библиотеки
 
Помогите решить проблему или подсказать другой подход.

Нужно подключить библиотеку зная только ее название.
При переходе на другой комп часть библиотек могут быть  не подключены. Их нужно подключать программно из макроса.  Если конкретно, то речь идет о Microsoft Scripting Runtime - с остальными проще. Разумеется работает метод .AddFromGuid, но для него нужен GUID. Столкнулся с тем, что на разных компах (системах , по крайней мере,  64 и 32 б) он может оказаться разным.  Узнать GUID открытой библиотеки просто. Но как узнать этот параметр нужной и не подключенной библиотеки по ее названию (части названия)? На ум приходит только сканирование списка зарегистрированных библиотек. Он точно существует, т.к. доступен в меню редактора VBA, но где его искать?
Варианты с "поздним связыванием" и прочие стандартные вещи мне известны и не актуальны. Очевидный вариант "открыть в меню "Разработчик" и посмотреть GUID" также не подходит - система передается "неопределенному кругу пользователей".
 
О дублях темы на других форумах нужно сообщать самостоятельно, давая ссылки.
 
Цитата
Павел2019 написал:
сканирование списка зарегистрированных библиотек
В реестре HKEY_CLASSES_ROOT\TypeLib или HKEY_CLASSES_ROOT\Wow6432Node\TypeLib (для 32-разрядных офисов под Win 64-).
Владимир
 
Сожалею, но у меня не хватает квалификации для  использования  из этой информации :((

Дубль: https://www.excel-vba.ru/forum/index.php?topic=6056.0
Изменено: Павел2019 - 17.08.2019 23:15:59
 
Уважаемый Павел2019, модераторы форума негативно относятся к излишним цитатам (я боюсь, сам подал пример) - уберите их пожалуйста.
Поищите через Regedit.exe  "Microsoft Scripting Runtime".
Пример с рекурсивным обходом ветви реестра можно помотреть здесь.
Изменено: sokol92 - 17.08.2019 17:23:45
Владимир
 
Павел2019, Microsoft Scripting Runtime это стандартная библиотека, она есть почти на всех win (поправьте если не так). Референсы хранятся в файле Excel. Если вы передаете файл или надстройку, на другой пк, в таком случае вам не нужно каждый раз, включать в референсах файла (проекта VBA) библу. Нужно будет сделать это только раз, ари создании. У вас не такой случай?
Изменено: bedvit - 17.08.2019 19:51:47
«Бритва Оккама» или «Принцип Калашникова»?
 
Спасибо всем! Разобрался.
Моя проблема была в том, что я считал, что список библиотек определяется текущей настройкой EXCEL (и/или VBA), а это в реальности настройка конкретного проекта. На одном компе часть проектов имеет нужную, библиотеку, а в тех проектах, где я не указывал, ее и нет. Проблем с переносом при аккуратной работе не возникает.
Между прочим, файл .xlsm без модулей вновь подключенную библиотеку не удерживает (не запоминает, так как нет проекта) и пользуется только стандартным набором.
Страницы: 1
Наверх