Как назначить макрос на запуск приложения Libreoffice?

Автор Sonchopin, 2 ноября 2018, 14:16

0 Пользователи и 1 гость просматривают эту тему.

Sonchopin

Добрый день! Вручную можно назначить макрос на событие, например на запуск приложения (Сервис-Настройка -События), а можно ли это сделать программным путем?

rami

Можно. В примере запустите макрос setMyEvent в редакторе макросов, переключитесь на документ, увидите окошко с сообщением (результат срабатывания созданного события). В "Настройках" можете посмотреть, что макрос назначился. Для удаления события выполните макрос removeMyEvent.

Sonchopin

#2
Здорово, спасибо! Макрос действительно выполнился и назначился, правда на конкретный документ, а не на все приложение. Как выяснилось, это не решает мою задачу, возможно я не туда копаю). У меня есть несколько макросов в одной библиотеке, я ее экспортировала как расширение. Один из макросов добавляет пользовательскую панель инструментов в Calc. Как сделать так, чтобы после установки расширения или одновременно с ней этот макрос выполнялся сам? Т.е., пользователь устанавливает расширение, перезапускает LO, и у него в Calc создается эта панель?

bigor

Расширением без макроса может создавать пользовательскую панель
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

Sonchopin


rami

Цитата: Sonchopin от  2 ноября 2018, 14:39Макрос действительно назначился, только почему-то не выполняется.
Макрос выполняется когда документ получает фокус. Вы наверно, запускаете макрос из меню Сервис —> Макросы..., в этом случае фокус не меняется. Создайте ещё один пустой документ и переключайтесь с одного документа на другой.

Цитата: Sonchopin от  2 ноября 2018, 14:39Макрос действительно выполнился и назначился, правда на конкретный документ, а не на все приложение.
Я специально назначил макрос на документ, а то попадёт в "шаловливые ручки" и заспамят форум жалобами "У меня постоянно выскакивает дурное окошко и издевается надо мной" ;D

Sonchopin

Да, спасибо, с выполнением разобралась. Хотелось,чтобы его вообще ни разу не надо было запускать. ;D А как все-таки установить на запуск приложения? Что написать вместо ThisComponent?

rami

Цитата: Sonchopin от  2 ноября 2018, 15:09А как все-таки установить на запуск приложения?
Хотите чтобы пользователи вспоминали вашу родословную при каждом запуске приложения?

Опишите по пунктам что должно происходить.

Sonchopin

#8
Есть расширение, которое по значениям в таблице Calc создает и заполняет документы Writer по выбранному шаблону (автоматизация писем). Таблицы Calc - каждый раз разные файлы(их выгружают с одного сайта). Можно установить расширение, вручную добавить нужные кнопки на панель инструментов и назначить им макросы. Сейчас так и делаю. А хочется, чтобы с установкой расширения эти кнопки появлялись сами, макрос для этого есть, только его надо запустить  хотя бы один раз.  Как сделать,чтобы макрос сам запустился и создал нужную панель инструментов? Или, может это можно как-то по-другому сделать?
Сейчас макрос по созданию панели инструментов создает их на конкретном документе, а когда я вручную назначаю его на запуск LO, он каждый раз проверяет,есть панель или нет, и если нет, то устанавливает. Все бы ничего, но только установка требует моего личного присутствия. А хочется, чтобы вжух - и все само :)).

Т.е. сейчас мое расширение просто импортирует библиотеку с макросами, а хочется чтобы оно еще добавило кнопок на панель инструментов.

rami

Цитата: Sonchopin от  2 ноября 2018, 15:58... вручную добавить нужные кнопки на панель инструментов и назначить им макросы. Сейчас так и делаю. А хочется, чтобы с установкой расширения эти кнопки появлялись сами, макрос для этого есть, только его надо запустить  хотя бы один раз.  Как сделать,чтобы макрос сам запустился и создал нужную панель инструментов? Или, может это можно как-то по-другому сделать?
Немножко проясняется, но ещё довольно темно...

Вы хотите создать новый документ и чтоб в нем была панель с кнопками, с привязкой к макросам и всякой полезной всячиной? Создайте шаблон со всем этим добром. Без расширений и плясок с бубном.

Sonchopin

Дело в том, что файл Calc не создаётся, а выгружается. Т.е. работаем с уже готовым, и каждый раз с разным файлом. Поэтому вся  начинка - кнопки с макросами - должна быть в приложении , чтобы быть доступной в любом документе. Это если я Вас правильно поняла.
До этого мы пользовались  подобной надстройкой в Excel, после ее установки все кнопки появлялись сами . Думала, что и здесь можно что-то подобное сделать.

JohnSUN

Правильно думала, можно.
С иностранными языками как дела обстоят? А то в той штуке, о которой я сейчас расскажу, всё или на английском или на французском.
Речь идёт об Extension Compiler. Прочитать там нужно приблизительно треть, тридцать страниц из 90 (остальное - в основном тексты лицензий на разных языках). И после этого написать строк 20 или 30 кода на бэйсике. Нарисовать нужные иконки и положить их в нужную папку. Нажать кнопку и получить готовое расширение, которое действительно сразу после  установки покажет кнопки или пункты меню в указанных местах.
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

bigor

Во вторник доберусь до компьютера, кажется у меня получалось сделать расширением м кнопками
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

Sonchopin

Цитата: JohnSUN от  2 ноября 2018, 18:30Правильно думала, можно.
С иностранными языками как дела обстоят? А то в той штуке, о которой я сейчас расскажу, всё или на английском или на французском.
Речь идёт об Extension Compiler.

Благодарю! Пошла читать, английский понимаю.

Sonchopin

Цитата: Sonchopin от  2 ноября 2018, 19:45Во вторник доберусь до компьютера, кажется у меня получалось сделать расширением м кнопками

Буду ждать :)