Страницы: 1
RSS
Использование макроса расположенного в надстройке
 
Добрый вечер. Судьба заставила изучать написание и использование макросов в LibreOffice, и там обнаружилась интересная (для меня) тема - использование общих макросов.
Т.е. см.скрин:

Макрос расположен а коллекции "Мои макросы и диалоги" и подгружается для любого документа. Причём можно пользоваться (вызывать) как на листе, так и в модуле расположенном в открытом файле.
А как реализовать такое для VBA? Например вот есть надстройка bighouse.xlam , которая так же доступна для любого открытого файла. Макросами из данной надстройки можно пользоваться на листе. А вот вызов из модуля листа документа "Книга1" не проходит

Просто у меня есть ряд макросов, которые используются во многих моих файлах, и при их правке/расширении требуется править/обновлять во всех листах...

Сам спросил, сам погуглил и нашёл...
Код
Public Sub udal_Zap()
    [a1] = Application.Run("bighouse.xlam!h_pt", 2, 320)
End Sub


Но это же не красиво...
Изменено: tutochkin - 21.09.2022 15:53:54
 
А метод Application.Run? Плюс можно поставить в итоговом файле ссылку в Tools-References на VB-проект своей надстройки и вызывать макросы из неё можно будет как из самого себя.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Плюс можно поставить в итоговом файле ссылку в Tools-References на VB-проект своей надстройки
А это как?
Полез я в Tools-References - добавить - папка расположения надстройки
C:\Users\ГришинИА\AppData\Roaming\Microsoft\AddIns

А мне заявляют о конфликте имён, что логично
 
Цитата
написал:
Полез я
ну, лазить надо правильно :) Ни в какие папки заходить не надо - все ищется в окне 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))

А вот обращение к другим макросам проще...
Страницы: 1
Наверх