Страницы: 1
RSS
Как подключить «навсегда» библиотеку Microsoft Scripting Runtime?
 

Добрый день.
При создании новой книги нажатием на значок Excel, создаётся несохраненная Книга1.
Если в эту книгу писать макросы, там не отражаются свойства и методы словарей, для этого нужно сначала через Tools - References подключить библиотеку Microsoft Scripting Runtime.

Можно ли сделать так, чтобы при создании новой книги эта библиотека автоматом подключалась?
А то приходится каждый раз заново подключать эту библиотеку.

У меня есть несколько своих макросов в надстройке, может на запуск этой надстройки привязать какой-то макрос, подключающий библиотеку на активную книгу?

 
Можно. Т.к. подключения хранятся вместе с файлом, вам нужно делать это в каждом файле. Можно повесить макрос на событие открытия или создания новой книги. Но может быть ситуация, когда на ПК, где будет открываться такой файл - не будет этой библиотеки. Будет сообщение об ошибке.
Изменено: bedvit - 07.09.2020 16:18:41
«Бритва Оккама» или «Принцип Калашникова»?
 
На событие создания книги:
Код
ActiveWorkbook.VBProject.References.AddFromGuid _
                  GUID:="{420B2830-E718-11CF-893D-00A0C9054228}", Major:=1, Minor:=0
ActiveWorkbook можно заменить на wb(если эта переменная используется в событийной процедуре):
Код
Private Sub App_NewWorkbook(ByVal Wb As Workbook) 
Wb.VBProject.References.AddFromGuid _
                  GUID:="{420B2830-E718-11CF-893D-00A0C9054228}", Major:=1, Minor:=0
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Ну или подключайте перед выполнением вашего макроса программно, потом можно так же программно и отключить.
«Бритва Оккама» или «Принцип Калашникова»?
 
Дмитрий, bedvit, спасибо!
 
Цитата
bedvit написал:
или подключайте перед выполнением вашего макроса программно
а что, так можно разве?
при открытии файла не будет выскакивать ошибка компиляции?
(а если не выскакивает - то зачем тогда подключать библиотеку программно?)

PS: а разве Excel новые файлы не по шаблону создаёт?
можно же в этом шаблоне подключить эту библиотеку, и все новые файлы будут с подключением.
 
Можно так
Код
Sub RUN_Help() 'подключаем СОМ в References, для раннего связывания
On Error Resume Next: ThisWorkbook.VBProject.References.AddFromGuid "{77D79CA3-15A0-4310-B8D8-0BCBE3F72D96}", 1, 0
Help
ThisWorkbook.VBProject.References.Remove ThisWorkbook.VBProject.References("BedvitCOM") 'отключаем библу в References
End Sub
 
Sub Help()
Dim bCOM As New BedvitCOM.BignumArithmeticFloat: bCOM.Help
End Sub
Для данной темы, нужен guid 420B2830-E718-11CF-893D-00A0C9054228 (Дмитрий выше ответил), со своими методами.
Нужно, как и в ручном подключении, для возможности использовать  раннее связывание.
Шаблоны не использовал, сей момент тоже интересен.
Изменено: bedvit - 07.09.2020 18:56:25
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
Игорь:  можно же в этом шаблоне подключить эту библиотеку, и все новые файлы будут с подключением.
с шаблоном чё-то не получилось :-(
 
Бахтиёр, я бы делал ставку на макрос, а не шаблон — так надёжнее. Код у вас есть, а там уже решайте, как удобнее - по кнопке или событию. Я предпочитаю подключать ручками - это очень быстро, а в каждой книге мне ссылки не нужны
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх