Пользователь
0,0
рейтинг
11 июня 2011 в 21:08

Разработка → Использование макросов в LibreOffice перевод

Хабравчане, хочу вам представить перевод от юзера rze. Его ещё нет на Хабрахабре, но он не отказался бы от инвайта. Отправить можно на почту mail@worze.org.

АПД: спасибо Mithgol, инвайт получен. :)

Привет, хабражители!
Сегодня я хочу Вам рассказать об использовании макросов в 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 и т. п.). Теперь, когда Вы знаете, как создавать макросы, вы можете легко создавать свои собственные, для того, чтобы облегчить свою работу.
Целью данной статьи является изучение основ работы с помощью инструментом для записи макросов.
Перевод: Jack Wallen
Руслан @Sk8er
карма
3,2
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (18)

  • +13
    Инвайт worze отправлен.
    • +1
      Спасибо! :) Думаю он будет очень рад.
      • 0
        ≈10 утра следующего дня, worze ещё не активировал свой инвайт. Намекните ему сделать это, пожалуйста — а не то вдруг у него письмо в спамоловку гигнулось, мало ли что.
        • +1
          Добрый день. Инвайт получил, только появился доступ к ПК. Спасибо большое.
          • +1
            На здоровье, добро пожаловать на Хабрахабр.
  • 0
    было бы очень интересно почитать об UNO и поддержке скриптинга на JS, Python, Ruby
    недавно сталкивался с проблемой изменить существующую xls табличку исходя из внешних данных, пришлось генерить XBA файл по ERB шаблону и его уже запускать
    • 0
      Недавно описывал работу с UNO без OLE в с++ habrahabr.ru/blogs/cpp/116151/
      В комментариях есть примеры из других языков
      • 0
        Да, я читал Вашу статью.
        Вы извините пожалуйста, но писать на C++ под Win32, чтобы потом запустить на линуксе, это мягко говоря изврат. После него мой вариант мне кажется крайне прямым.
        Без обид.
  • –3
    Сейчас появятся макровирусы в LibreOffice на Linux…
  • +1
    спасибо, отличная статья
  • +4
    Для использования пакета LibreOffice, Вам нужно иметь предустановленную операционную систему Linux, …

    Использовал и использую OpenOffice.org/LibreOffice и под Windows с MacOS. Что я делаю не так? :)
    • 0
      Аналогично. И брал не из репозиториев, а с www.libreoffice.org/download/
      Все правильно сделал?
  • 0
    Удивлялся, почему на Хабре нет было статей на данную тему. Для быстрого старта — самое оно. Спасибо.
  • +5
    Зачем писать «пост от worze» если это перевод? Так и пишите, перевод. Что касается самого поста — фактически тоже самое можно написать и о макросах в MS Office — совпадает практически все, если говорить об интерфейсе. Гораздо полезнее был бы пост об объектной модели LO: не думаю что кто-то с хабра затруднится с понятием «что такое макрос» или «как его сохранить» :)
  • 0
    По просьбам трудящихся перезалил картинки на habrastorage.org
  • +5
    Увидев заголовок, ожидал большего.
    Хотел увидеть больше кода и конкретных примеров.
    Было бы интересно почитать насколько макросы в LibreOffice отличаются от MS Office и возможность переносимости с него.
  • 0
    После установки LibreOffice 3.4.0 (Win) по умолчанию пункт меню «Сервис» — «Макросы» — «Записать макрос» не доступен.
    Для того чтобы он появился необходимо вызвать «Сервис» — «Параметры», развернуть ветку «LibreOffice» — «Общие» и установить флаг «Включить экспериментарльные (нестабильные) возможности».

    Вот так вот неожиданно (для меня) запись макросов оказалась экспериментальной и нестабильной возможностью :)
  • 0
    Хотелось бы побольше примеров, и может какие-то готовые решения для популярных проблем.
    Например, никак не нашёл способа в OpenOffice заменить все разрывы абзаца на разрыв строки (и наоборот), для этого мне приходится копировать в другой редактор, там шаманить, и потом уже копировать обратно. Можно ли для этой функции сделать макрос?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.