Добрый вечер. Судьба заставила изучать написание и использование макросов в LibreOffice, и там обнаружилась интересная (для меня) тема - использование общих макросов. Т.е. см.скрин:
Макрос расположен а коллекции "Мои макросы и диалоги" и подгружается для любого документа. Причём можно пользоваться (вызывать) как на листе, так и в модуле расположенном в открытом файле. А как реализовать такое для VBA? Например вот есть надстройка bighouse.xlam , которая так же доступна для любого открытого файла. Макросами из данной надстройки можно пользоваться на листе. А вот вызов из модуля листа документа "Книга1" не проходит
Просто у меня есть ряд макросов, которые используются во многих моих файлах, и при их правке/расширении требуется править/обновлять во всех листах...
Сам спросил, сам погуглил и нашёл...
Код
Public Sub udal_Zap()
[a1] = Application.Run("bighouse.xlam!h_pt", 2, 320)
End Sub
А метод Application.Run? Плюс можно поставить в итоговом файле ссылку в Tools-References на VB-проект своей надстройки и вызывать макросы из неё можно будет как из самого себя.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
ну, лазить надо правильно Ни в какие папки заходить не надо - все ищется в окне References. Открываете надстройку - переименовываете VB-проект надстройки во что-то вменяемое(Tools -VBAProject Properties) - так и искать проект надстройки потом будет проще(т.к. по умолчанию для всех книг имя проекта одно и то же - VBAProject) и ошибок при подключении не возникнет. Потом открываете нужный файл и в окне References просто ставите галку напротив проекта надстройки. Все.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Дмитрий(The_Prist) Щербаков, Благодарю. Так хоть адекватнее выглядит... Оффтоп У LO вызывать LinEst приходится через svc = createUnoService("com.sun.star.sheet.FunctionAccess") Coefs =svc.callFunction("LinEst", Array(Y1, X1, 1, 1)) А вот обращение к другим макросам проще...