LibreOffice: Автоматический экспорт в PDF (Пример работы с макросами без знания языка макросов). Как включить макросы в LibreOffice Calc Как создать макросы в libreoffice calc

Любые материалы я публикую в двух форматах - odt и pdf . Последний удобен для распространения. Экспорт в pdf осуществляется штатными средствами LibreOffice через диалог «Файл → Экспорт в PDF ». В процессе вычитки руководства и исправления в нём ошибок приходится часто пересохранять документ. И чтобы каждый раз вручную не экспортировать документ, я подумал, что было бы неплохо если бы это происходило автоматически при сохранении odf файла. И знание языка макросов LibreOffice в данном случае абсолютно не нужно.

Задача решается с помощью функции записи макроса. По умолчанию она недоступна. Чтобы включить ее перейдите в «Сервис → Параметры » в разделе «LibreOffice » выберите пункт «Расширенные возможности » и установите галочку напротив «Включить запись макросов ».

После перезапуска LibreOffice во вкладке «Сервис → Макросы » появится пункт «Записать макрос ».

После нажатия «Сервис → Макросы → Записать макрос » на экране всплывет окошко с кнопкой «Завершить запись ».

Суть проста:

  1. Включите запись макроса
  2. Выполните необходимое действие пока идет запись. В моем случае я просто выполнил экспорт в PDF через «Файл → Экспорт в PDF »
  3. Нажмите кнопку «Завершить запись »
Все, макрос экспорта в PDF записан, остается только сохранить его.

Для удобства я создал модуль «Export_to_PDF » в библиотеке «Standard » и сохранил свой макрос в этом модуле.

Теперь остается только назначить срабатывание макроса на определенное событие. В нашем случае на сохранение документа. Идем в «Сервис → Настройка » на вкладку «События ».

Около 10 лет я использую Linux. Примерно лет 5 назад я начал использовать пакет OpenOffice, а 3 года назад - LibreOffice. К своему удивлению, и даже стыду, макросов, написанных для Calc у меня нет. А вот для Excel их за это время накопилось достаточно, начиная от простеньких формочек и формул и заканчивая мощными надстройками для предприятий, автоматизирующих подготовку информации. Сегодня дал себе зарок потихоньку начать изучать пакет и его возможности, в котором провожу довольно много времени.


Для большинства людей макрос - это что-то непонятное, и, пожалуй, лишнее изобретение. Для них оно не только не оптимизирует работу, но еще и увеличивает ее. Это мнение вызвано непониманием принципов использования макросов. Макросы используются тогда, когда необходимо выполнить какое-то действие много раз. Чаще всего это однотипная обработка документа (сложное форматирование, выборки), иногда формы для заполнения, формулы, расчеты для графиков... Отталкиваясь от этого и от своих предпочтений мы выбираем способ хранения наших макросов:

  • глобальный (или надстройка) — доступный всегда при открытии программы;
  • шаблонный — доступный при открытии конкретного шаблона;
  • локальный — доступный при работе только в конкретном документе.

Последний используется реже, в основном в очень сложных интерактивных документах.
На сегодняшний день, только мелкие компании, у которых нет в штате IT-специалистов, пользуются офисными пакетами (не важно LibreOffice или MS Office) как они есть «из коробки». В большинстве же случаев, офисный пакет является только базой на которой развернуты надстройки, и сотрудник компании, часто, даже не подозревает сколько для него было сделано мелких, но очень удобных штучек, пока не уволится или не перейдет в другую компанию.


Изучение написания макросов в Excel советуют начать с инструмента «Записать макрос». Действительно, записывая кусочки действий, достаточно просто себе представить поверхностный уровень языка и API которым в последующем нужно будет пользоваться. Так же иногда, чтобы быстро создать несложный макрос, как бы «накидываешь его записывая» а потом шлифуешь, доводя до ума в редакторе кода.

Подключение инструмента «Записать макрос» в LibreOffice 4.1

В LibreOffice 4.1 по умолчанию функция «Записать макрос » отключена. Поэтому, первое что нужно сделать, это включить её: Сервис Параметры (Tools Options ) раскрыть группу LibreOffice и в самом низу в пункте «Расширенные возможности » («Advanced ») поставить галочку на против «Включить запись макросов(ограничено) » («Enable macro recording (limited) »).

После этого в вашем меню: Сервис → Макросы (Tools → Macros ) появится пункт меню «Записать Макрос » («Record Macro »).

Использование инструмента «Запись макроса» в LibreOffice 4.1

Для демонстрации инструмента «Запись макросов » приведем простой пример:
1. Откроем новый документ Calc и сохраним его на диск под удобным для вас названием;
2. Выделим ячейку A1 ;
3. Включим запись макроса Сервис → Макросы → «Записать Макрос» (Tools → Macros → «Record Macro» ). Появится панель с единственной кнопкой «Завершить Запись » («Stop Recording »);
5. Выделим ячейку B1 и нажмем «Завершить Запись » («Stop Recording »);
6. Откроется следующее окно:

Мы делаем макрос с доступом только в этом документе, поэтому, откроем пункт с названием документа (у меня article.ods, у вас это будет название, под которым вы сохранили документ) и выделим единственную присутствующую библиотеку Standard . В ней пока нет модулей, поэтому создадим его.
7. Нажмем кнопку «Создать модуль » («New Module ») и в открывшемся окне введем имя модуля.

По умолчанию модуль создается с пустым макросом под названием Main . Введем в поле «Имя макроса » («Macro name ») желаемое имя я ввел «Main ») и нажмем «Записать » («Save ») чтобы сохранить записанный нами макрос. В моём случае появится предупреждение, что такое название макроса уже есть.

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

Запуск и редактирование макроса LibreOffice 4.1

Запустить макрос в LibreOffice 4.1 можно двумя способами.
Первый, открыть окно «Выполнить макрос »: Сервис → Макросы → «Выполнить макрос» (Tools → Macros → «Run Macro...» ), выделить нужный макрос и нажать «Запустить ».

Работа конвертеров основана на макрокомандах (макросах). Обычно макросы применяют для выполнения рутинных действий. Мы же будем использовать их для формирования файлов в ИФНС.

По умолчанию использование макросов отключено в Excel и LibreOffice Calc. Нужно самостоятельно один раз включить их. Сделать это очень легко.

Как включить макросы в Microsoft Excel 2007, 2010

Щелкаем на кнопку Файл в левом верхнем углу и выбираем Параметры в открывшемся меню:

В появившемся диалоговом окне выбираем Центр управления безопасностью и Параметры центра управления безопасностью .

В окне выбирайте — Параметры макросов и затем отметьте пункт Включить все макросы

ОК

После этого вам также необходимо закрыть и открыть файл Excel, чтобы изменения вступили в силу. В дальнейшем макросы будут запускаться в Excel 2007 автоматически.

Как включить макросы в LibreOffice Calc

После установки откройте программу Calc . В меню Сервис выбираем Параметры .

Выбираем пункт Безопасность и нажимаем на кнопку Безопасн. макросов

Выбираем уровень Средний (в этом случае при запуске макроса нужно подтверждать его работу дополнительным нажатием на кнопку) или Низкий .

Подтвердите свой выбор, нажатием ОК во всех открытых диалоговых окнах.

Новости проекта:

Теперь подтвердить экспорт можно с помощью Конвертера реестра подтверждения экспорта . Как и все наши продукты этот конвертер поможет Вам эффективно использовать время при составлении декларации по НДС.

Заполнить декларацию по НДС за 1 квартал 2016г. помогут актуальные версии конвертеров . Мы по прежнему продолжаем поддержку всех наших клиентов во время декларационной компании.

Декларационная кампания за 4 квартал 2015г. - все версии конвертеров по прежнему актуальны и могут быть использованы для сдачи отчета. Последние версии конвертеров - самые удобные для использования.

19 июля появилась возможность формировать книги покупок и продаж для загрузки в Налогоплательщик ЮЛ напрямую (не через декларацию).

31 мая обновлены конвертеры для формирования декларации по НДС. Об изменениях можно прочитать .

За декларационную компанию за 1 квартал по НДС мы получили по электронной почте более 300 "Спасибо" от налогоплательщиков:) !

16 апреля 2015 на серверах хостинг провайдера произошел сбой, в связи с чем сайт работал нестабильно. В настоящий момент проблемы устранены.

15 апреля 2015 стал доступен конвертер Уведомления о контролируемых сделках .

Конвертеры Декларации по НДС

  • ГЛАВНАЯ

Инвайт получен. :)

Привет, хабражители!
Сегодня я хочу Вам рассказать об использовании макросов в LibreOffice.

Предисловие
Каждый день дома и на работе мы пользуемся офисными приложениями для выполения каких-либо задач. Часто бывает так, что Вы специализируетесь на одной работе и в итоге выполняете одни и те же задачи: вставляете один и тот же текст, форматируете его, используя большое количество горячих клавиш. Во всех этих случаях можно сэкономить Ваше ценное рабочее время, автоматризировав некоторую Вашу работу.
Далее в статье я Вам расскажу об использовании макросов в LibreOffice.

Что же такое макросы и зачем они?

Макрос - это последовательность определенных действий, который можно записать с помощью обычного меню. Когда вы выбираете запись макроса, выполняемые вами действия автоматически сохраняются в виде кода скрипта. И в дальнейшей вашей работе он будет уже выполняться самостоятельно, в точности повторяя Ваши действия в программе. Макрос может быть как простым, так и очень сложным - все зависит от того, какой Вам необходимо добиться результат. Главные критерии, которые предъявляются к макросам - это быть мощным и одновременно простым в использовании. Макросы пакета LibreOffice отвечают именно таким требованиям. Давайте попробуем это на практике.

Для использования пакета LibreOffice, Вам нужно иметь предустановленную операционную систему Linux, Windows или MacOS, a так же установленный пакет LibreOffice (установить его можно, к примеру, из ppa-репозитиев, как описано в топике)

Управление макросами

Перед тем как мы приступим к созданию своего макроса, нам нужно познакомится с инструментом управления макросами. Переходим по пути Tools - Macros - Organize Macros - LibreOffice Basic Macros (Сервис - Макросы - Управление макросами - LibreOffice Basic Macros):

В левой колонке окна мы можем увидеть список установленных макросов по-умолчанию. Нажав на любой из них, можно его отредактировать либо удалить.
Главная задача окна - выбрать нужный Вам макрос, назначить ему кнопку на панели инструментов или связать его с каким-либо событием. Назначение макросу кнопки позволяет быстро выполнять наиболее часто используемые из них.

Хочу отметить, что создание макроса в автоматическом режиме (запись) предполагает хотя бы небольшое знание языка написания макросов, так как иногда нам понадобится его редактировать. Для того чтобы увидеть, как выглядит макрос, выбираем нужный нам макрос и нажимаем Edit (Редактировать). Ниже предоставлен пример, как выглядит макрос в исходном коде:

Возьмем простой пример. Мы имеем некий текст, уже вставленный в документ и нам нужно сделать заголовок для него, так как наш текст будет использоваться в деловой переписке.
Наш будущий макрос должен будет уметь:
- расположить текст наверху по центру страницы;
- ввести текст, который и будет использоваться в качестве заголовка.
После того, как создадим макрос, мы назначим ему кнопку на панели инструментов. После достаточно будет одного щелчка мыши, чтобы вставить заголовок в документ.
Выполним последовательность шагов.

Шаг 1.
Открываем текстовый документ. Перейдем Tools - Macros - Record Macro . Появится маленькое окно «Запись макроса» с одной единственной кнопкой «Завершить макрос» (Stop Recording ):

Шаг 2.
Создадим заголовок текста. Щелкнем мышью на кнопке «Center alignment» («По центру»), для того, чтобы наш будущий текст был именно по центру документа. Теперь пишем сам текст заголовка. Не стоит задавать различные форматы для него (шрифт или жирный/курсив/подчеркнутый), так как макрос не запоминает такие действия.

Шаг 3.
После того, как создание заголовка завершено, щелкните мышью на кнопке «Завершить макрос» окна «Запись макроса». Сразу появится окно Органайзера макросов. Задайте имя для нового макроса (например,PostHead). Теперь можно сохранить его в то место, где бы вы хотели (например, папка "My Macro ").

Шаг 4.
Теперь нам осталось добавить кнопку на панели инструментов для макроса PostHead . Процесс этот не так прост, как казалось бы на первый взгляд.
Открываем LibreOffice Basic Macros, нажимаем кнопку "Assign " («Назначить»). Появится следующее окно Customize , в котором нам следует перейти на вкладку Toolbars и убедиться в том, что в поле «Панель инструментов» стоит «Стандартная» (Standart ) .

Нажимаем в этом окне кнопку «Добавить» (Add ). Появится еще одно окно - «Добавление команд» (Add commands ).
В списке левого окна «Категории» (Category ) находим "LibreOffice Macros " (в самом низу списка). Открываем его и добираемся до нашего макроса. Как только нашли - осталось выполнить последний и самый простой шаг. Перетаскиваем мышью макрос Letterhead в то место панели инструментов, где бы мы хотели его видеть.
Все, с задачей справились.
Теперь все, что нам необходимо делать - это пользоваться кнопкой PostHead, которую мы добавили на панель. Например, открываем новый документ и нажимаем кнопку PostHead . Наш макрос создаст заголовок, именно с тем текстом, который мы «назначили» ему и разместит его наверху документа точно по центру.
Правда удобно?

Итог
Конечно, в моем примере мы создали очень простой макрос. Но с помощью вышеописанных инструментов вы можете создать и очень сложные макросы. И не только в Writer , но и во всех остальных приложениях пакета LibreOffice (Spreadsheet, Presentations и т. п.). Теперь, когда Вы знаете, как создавать макросы, вы можете легко создавать свои собственные, для того, чтобы облегчить свою работу.
Целью данной статьи является изучение основ работы с помощью инструментом для записи макросов.

Внимание! Написание макроса выполнялось в LibreOffice 4.4.3.2 и Windows XP.

Запустите LibreOffice Calc. Выберите пункт меню Сервис -> Макросы -> Управление макросами -> LibreOffice Basic


В окне Макросы Libre Office BASIC в поле "Имя макроса" пишем "Main". В поле "Макрос из" выбираем "Мои макросы" - "Standard" и нажимаем кнопку "Создать". Смотрите рисунок 1.

Рисунок 1. Окно макросы LibreOffice Basic


В окне Новый модуль задаем название "Module1" и нажимаем кнопку "OK". Смотрите рисунок 2.

Рисунок 2. Создание нового модуля

Рисунок 3. Редактор макросов LibreOffice Basic

Сам модуль Module1 с главной процедурой Main у нас созданы. Чтобы создать диалог выберите в редакторе макросов LibreOffice Basic пункт меню Сервис -> Макросы -> Управление диалогами...

Выбираем вкладку "Диалоги". В разделе "Диалог" выбираем "Мои диалоги" -> "Standard" и нажимаем кнопку "Создать". Смотрите рисунок 4.

Рисунок 4. Создание диалога макроса

В окне Новый диалог задаем название "Dialog1" и нажимаем кнопку "OK". Смотрите рисунок 5. Потом кнопку "Закрыть" окна Управление макросами LibreOffice Basic.

Рисунок 5. Создание нового диалога

Далее в окне редактора макросов LibreOffice Basic дважды нажимаем на нашем только что созданом диалоге с именем "Dialog1", смотрите цифру 1 на рисунке 6. После этого откроется визуальный редактор диалога, смотрите цифру 2 на рисунке 6.

Рисунок 6. Редактор диалога LibreOffice Basic

Теперь перенесите на наш диалог визуальный элемент под именем метка и визуалный элемент кнопка. Визуальные элементы можно перетащить из панели визуальных элементов, смотрите цифру 3 на рисунке 6.

Если выделить визуальный элемент Метку, то откроется набор свойств данного элемента. Через эти свойства можно настроить элемент. Присвоим имя lblNow элементу метка и текст оставим пустым. Для элемента кнопка имя присвоем OKButton и текст зададим OK. Смотрите цифры 1,2,3 рисунка 7.

Рисунок 7. Добавление визуальных элементов в редакторе диалогов LibreOffice Basic

Как я писал выше, модуль Module1 с главной процедурой Main создана (смотрите рисунок 8), но она еще не заполнена.

Рисунок 8. Добавляем исходный код макроса


Процедура Main является основной, в ней мы загружаем диалоговое окно с именем Dialog1, это следующие строчки кода:

DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)

Формируем строку с текущей датой и временем, это следующие строчки кода:

Dim strNow As String
strNow = Format(Now(), "yyyy-mm-dd ")
strNow = strNow + Format(Time(), "hh:mm")

Присваеваем строку с датой и временем визуальному элементу метка с именем lblNow, это следующие строчки кода:

Dim clblNow As Object
clblNow = Dlg.getControl("lblNow")
clblNow.Text = strNow

Последней строчкой кода в процедуре Main мы выполняем диалоговое окно с именем Dialog1:

Dlg.Execute()

Есть еще одна процедура, ее имя OKButton_execute, это событийная процедура, она выполняется в момент нажатия кнопки с именем OKButton, и выполняет она закрытие диалогового окна с именем Dialog1, это следующая строчка кода:

Dlg.endExecute()

Теперь присвойте процедуру с именем OKButton_execute кнопке с именем OKButton как событие на "Отпускание клавишы мыши". Для этого откройте визкальный редактор диалога Dialog1, смотрите цифру 1 на рисунке 9. Выделите Кнопку с именем OKButton и перейдите на вкладку "События", смотрите цифру 2 на рисунке 9. В событие "Отпускание клавиши мыши" укажите процедуру с именем OKButton_execute, нажав конопку с тремя точками, смотрите цифру 3 на рисунке 9.

Рисунок 9. Назначение события кнопке ОК

Все необходимое для запуска макроса мы сделали. Для начала посмотрим что у нас делает макрос. Под цифрой 2 рисунка 10 вы видите созданное диалоговое окно с отображаемой текущей датой и временем. Если нажать кнопку OK, то диалоговое окно закроется.

1. Запуск макроса из редактора макросов LibreOffice Basic.Откройте в редакторе макросов LibreOffice Basic наш код и выполнтите его нажав клавишу F5 или нажав на кнопку выполнения макроса, смотрите цифру 1 рисунка 10.

2. Запуск макроса из диалогового окна "Выбор макроса", смотрите цифру 1 на рисунке 11. В диалоговом окне нам нужно выбрать наш макрос и нажать кнопку "Выполнить", смотрите цифру 2 на рисунке 11.

Рисунок 11. Запуск макроса из диалога "Выбор макроса"

3. Запуск макроса из меню и подменю в приложениях LibreOffice Calc или LibreOffice Writer, смотрите цифру 0 рисунка 12. Для создания меню и подменю выберите пункт меню "Сервис" и подменю "Настройка", смотрите цифры 1 и 2 рисунка 12. В диалоговом окне "Настройка" на вкладке "Меню" нажмите кнопку "Создать...", введите имя нашего меню (например "Макросы"), смотрите цифру 3 рисунка 12. Чтобы создать подменю нашего меню "Макросы" нажмите кнопку "Добавить..." (смотрите цифру 4 рисунка 12.).

Рисунок 12. Запуск макроса из меню и подменю в приложениях LibreOffice Calc или LibreOffice Writer

Потом в диалоговом окне "Добавить команды" выберите команду которая будет выполнятся при выборе нашего подменю (смотрите цифры 1 и 2 рисунка 13), т.е. мы выбираем наш макроc с именем Main.

Рисунок 13. Добавляем команду для подменю

Переименуйте наше подменю выбрав пункт меню "Переименовать..." кнопки "Изменить" диалогового окна "Настройка" вкладки "Меню" (смотрите цифры 1,2,3,4 рисунка 14). Подменю назовите "Макрос окно с датой".

Рисунок 14. Переименование подменю

4. Запуск макроса в приложениях LibreOffice Calc или LibreOffice Writer по нажатию сочетания клавиш на клавиатуре. Для это откройте диалог "Настройка" и выбирите вкладку "Клавиатура" (смотрите цифру 1 рисунка 15). Потом выбираем команду, которая является нашим макросом с именем "Main" (смотрите цифру 2 рисунка 15). Потом выбираем свободную комбинацию клавиш и назначаем их нашей команде, т.е. макросу с именем Main (смотрите цифры 3,4,5 рисунка 15).

Рисунок 15. Назначение комбинации клавиш для запуска макроса

5. Запуск макроса в приложениях LibreOffice Calc или LibreOffice Writer по нажатию кнопки на панели инструментов (смотрите цифру 4 рисунка 16). Для создания кнопки на панели инструментов выберите пункт меню "Сервис" и подменю "Настройка", смотрите цифру 1 рисунка 16. В диалоговом окне "Настройка" на вкладке "Панели инструментов" нажмите кнопку "Создать...", введите имя нашей панели инструментов (например "Панель макросов"), смотрите цифру 2 рисунка 16. Чтобы создать кнопку на панели инструментов нажмите кнопку "Добавить..." (смотрите цифру 3 рисунка 16).

Рисунок 16. Запуск макроса из панели инструментов

Потом в диалоговом окне "Добавить команды" выберите команду которая будет выполнятся при нажатие по нашей кнопке нашей панели инструментов (смотрите цифры 1 и 2 рисунка 13), т.е. мы выбираем наш макроc с именем Main.

Переименуйте нашу кнопку нашей панели инструментов выбрав пункт меню "Переименовать..." кнопки "Изменить" диалогового окна "Настройка" вкладки "Панели инструментов" (смотрите цифры 1,2,3,4 рисунка 17). Кнопку назовите "Макрос окно с датой".

Рисунок 17. Переименование кнопки панели инструментов