Мы используем много документов с макросами. Для унификации кода и сокращения его в каждом отдельном документе, мы вынесли постоянно используемые функции в отдельную библиотеку, которая устанавливается в виде расширения.
Соответственно, при любом обращении к функциям этой библиотеки из макроса документа, необходимо обеспечить:
- физическое наличие библиотеки
- при её наличии — подгрузить библиотеку — запустить функцию
- при её отсутствии — выдать предупреждение — недопустить вызова функции.
'==========================================
' кнопка, вызывающая процедуру из пользовательской библиотеки
Sub Suicid_doc
libInfra = «Infra» 'имя библиотеки функций
If CheckAndLoadLib(libInfra) then 'проверяем загружена ли библиотека
'print «библиотека есть»
Infra.TemplateLauncher.Suicide_question 'вызов функции из библиотеки
else
MsgBox(«Требуется установка библиотеки спецфункций «» + libInfra + "»",0+16,«Внимание! Операция прервана.»)
End If
End Sub
Function CheckAndLoadLib(libName as String) as Boolean
If GlobalScope.BasicLibraries.hasByName (libName) Then 'проверяем загружена ли библиотека
If Not GlobalScope.BasicLibraries.IsLibraryLoaded (libName) Then 'проверяем загружена ли библиотека
GlobalScope.BasicLibraries.LoadLibrary (libName) 'подгружаем библиотеку дополнительных функций
End If
CheckAndLoadLib = True
else
CheckAndLoadLib = False
End If
End Function