Как включить макросы в libreoffice calc
Перейти к содержимому

Как включить макросы в libreoffice calc

  • автор:

Использование макросов в 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 и т. п.). Теперь, когда Вы знаете, как создавать макросы, вы можете легко создавать свои собственные, для того, чтобы облегчить свою работу.
Целью данной статьи является изучение основ работы с помощью инструментом для записи макросов.

Информатика в экономике и управлении

Свободное программное обеспечение для бизнеса и дома.

Страницы блога

среда, 30 октября 2013 г.

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

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

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

В LibreOffice 4.1 по умолчанию функция «Записать макрос» отключена. Поэтому, первое что нужно сделать, это включить её: СервисПараметры (ToolsOptions) раскрыть группу 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. »), выделить нужный макрос и нажать «Запустить».

Второй, открыть окно «LibreOffice BASIC»: Сервис → Макросы → «Управление макросами» → LibreOffice Basic. (Tools → Macros → «Organize Macros» → «LibreOffice Basic. »), выделить нужный макрос и нажать «Запустить».

Посмотреть и отредактировать код макроса в LibreOffice 4.1 можно открыв редактор макросов. Сервис → Макросы → «Управление макросами» → LibreOffice Basic. (Tools → Macros → «Organize Macros» → «LibreOffice Basic. »), выделив нужный макрос и нажав «Правка» («Edit»).
Вот и всё, пожалуй, что я хотел сказать по поводу инструмента «Запись макроса» в LibreOffice 4.1.

Глава 13 – Работа с макросами в LibreOffice¶

Чаще всего, макрос это сохранённая последовательность команд или нажатий клавиш, предназначенная для последующего использования. Например, можно сохранить и «впечатывать» свой адрес. Язык программирования LibreOffice очень гибок и позволяет автоматизировать как простые, так и сложные задачи. Макросы часто используются, когда мы хотим повторять ещё и ещё раз определённую последовательность действий в схожих условиях.

Макросы в LibreOffice обычно записываются на языке, называемом LibreOffice Basic или просто Basic. Конечно можно долго изучить Basic и наконец начать программировать, но это руководство поможет вам сразу решать простые задачи. Начинающие пользователи часто с успехом применяют макросы, написанные кем-либо другим. Также, можно использовать функцию записи макросов, чтобы сохранить последовательность нажатий клавиш и использовать её ещё раз.

Большинство действий в LibreOffice выполняются путём отправки команды (посылки команды, dispatching a command), которая перехватывается и выполняется. Функция записи макросов позволяет записать непосредственные команды, которые обрабатываются (смотрите Платформа диспетчера).

Ваш первый макрос¶

Добавление макроса¶

Первый шаг в изучении программирования макросов, это найти и использовать существующие макросы. В этом разделе подразумевается, что у вас уже имеется макрос, который вы хотите использовать. Вы могли найти его в Интернете или в какой-нибудь книге. Рассмотрим пример 1. Чтобы записать этот макрос, вы должны предварительно создать библиотеку и модуль, и уже в модуле написать текст макроса, смотрите Организация макросов.

Пример 1: Простой макрос, который пишет “Hello, World”:

Чтобы создать библиотеку, необходимо выполнить следующие шаги:

  1. Выберете пункты главного меню Сервис ‣ Макросы ‣ Управление макросами ‣ LibreOffice Basic , чтобы открыть диалог работы с макросами Libreoffice Basic.

Диалог работы с макросами LibreOffice Basic

Диалог работы с макросами LibreOffice Basic

  1. Нажмите Управление, чтобы открыть диалог организатора макросов и выберите вкладку Библиотеки.
  2. Выберите в выпадающем списке Приложение/Документ пункт Мои макросы и диалоги.

Диалог организатора макросов LibreOffice Basic

Диалог организатора макросов LibreOffice Basic

  1. Нажмите Создать, чтобы открыть диалог создания новой библиотеки.
  2. Введите имя библиотеки, например, TestLibrary и нажмите OK.
  3. Выберите вкладку Модули.
  4. В списке модулей раскройте Мои макросы и выберите TestLibrary. Модуль с именем Module1 уже существует, он может содержать ваши макросы. Если необходимо, том можно нажать Создать, чтобы создать другой модуль в библиотеке.
  5. Выберите Module1 или новый модуль, который вы создали и нажмите Правка, чтобы открыть интегрированную среду разработки (IDE). Интегрированная среда разработки это текстовый редактор, включённый в LibreOffice, который позволяет создавать и редактировать макросы.

Интегрированная среда разработки макросов

Интегрированная среда разработки макросов

  1. После создания нового модуля он содержит комментарий и пустой макрос, названный Main, который ничего не делает.
  2. Добавьте новый макрос или до Sub Main или после End Sub . В примере ниже приведен новый макрос, который был добавлен до Sub Main .

Пример 2: Module1 после добавления нового макроса:

  1. Нажмите на значок Компилироватьch13-lo-screen-004 на панели инструментов, чтобы откомпилировать макрос.
  1. Поставьте курсор в процедуру HelloMacro и нажмите на значок Выполнить BASICch13-lo-screen-005 на панели инструментов или нажмите клавишу F5 , чтобы выполнить HelloMacro в модуле. Откроется маленький диалог со словом Привет . Если курсор не находится внутри процедуры Sub или функции Function , откроется диалог выбора макроса для запуска.
  1. Нажмите OK, чтобы закрыть диалог.
  2. Чтобы выбрать и выполнить любой макрос в данном модуле, нажмите значок Выбрать макросch13-lo-screen-006 на стандартной панели инструментов или выберите Сервис ‣ Макросы ‣ Управление макросами ‣ LibreOffice Basic .
  1. Выберите макрос и нажмите Выполнить.

Запись макросов¶

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

Для некоторых типов многократно вводимой в документах информации более удобно создать файл автотекста. Описание работы с автотекстом смотрите в справочной системе и в главе Глава 3 – Использование Стилей и Шаблонов данного руководства.

  1. Убедитесь, что функция записи макросов активизирована, выбрав Сервис ‣ Параметры ‣ LibreOffice ‣ Расширенные возможности . Установите флажок Включить запись макросов. По умолчанию эта функция отключена, когда LibreOffice впервые установлен на ваш компьютер.
  2. Выберите Сервис ‣ Макросы ‣ Записать макрос из главного меню, чтобы запустить запись макроса. Появится маленький диалог, подтверждающий, что LibreOffice записывает ваши действия.

Диалог записи макроса

Диалог записи макроса

  1. Наберите желаемую информацию или выполните необходимые действия. Например, напечатайте ваше имя.
  2. Нажмите Завершить запись в маленьком диалоге, чтобы остановить запись, и появится диалог работы с макросами LibreOffice.
  3. Откройте библиотечный контейнер Мои макросы.
  4. Найдите библиотеку с именем Standard в Моих макросах. Обратите внимание, что каждый библиотечный контейнер содержит библиотеку Standard .
  5. Выберите библиотеку Standard и нажмите Создать модуль, чтобы создать новый модуль, содержащий макросы. Откроется диалог создания модуля.

Диалог создания модуля

Диалог создания модуля

  1. Задайте название для нового модуля, например, Recorded и нажмите OK, чтобы создать модуль. В диалоге работы с макросами теперь виден этот новый модуль в составе библиотеки Standard .
  2. В поле Имя макроса напечатайте имя для макроса, который вы только что записали, например, EnterMyName .
  3. Нажмите Записать, чтобы сохранить макрос и закрыть диалог работы с макросами.
  4. Если вы верно выполнили все шаги, описанные выше, библиотека Standard теперь содержит модуль Recorded , и этот модуль содержит макрос EnterMyName .

Когда LibreOffice создаёт новый модуль, в этот модуль автоматически добавляется процедура с именем Main .

Запуск макроса¶

  1. Выберите Сервис ‣ Макросы ‣ Выполнить макрос , чтобы открыть диалог выбора макроса.
  2. Например, выберите ваш только что созданный макрос EnterMyName и нажмите Выполнить.
  3. Можно также вызвать из главного меню Сервис ‣ Макросы ‣ Управление макросами ‣ LibreOffice Basic , чтобы открыть диалог работы с макросами, выбрать ваш макрос и нажать Выполнить.

Диалог выбора макроса

Диалог выбора макроса

Просмотр и редактирование макросов¶

Чтобы просмотреть или отредактировать созданные вами макросы выполните:

  1. Сервис ‣ Макросы ‣ Управление макросами ‣ LibreOffice Basic , чтобы открыть диалог работы с макросами.
  2. Выберите ваш новый макрос EnterMyName и нажмите Правка, чтобы открыть макрос в интегрированной среде разработки.

Макрос EnterMyName не так уж сложен, как может показаться. Изучение нескольких вещей существенно поможет в понимании макросов. Начнём сначала и посмотрим на самую первую строку примера.

Макрос EnterMyName не так уж сложен, как может показаться. Изучение нескольких вещей существенно поможет в понимании макросов. Начнём сначала и посмотрим на самую первую строку примера.

Пример 3: Сгенерированный макрос EnterMyname :

Комментарии¶

Подробные комментарии являются необходимой частью программы. Без комментариев и сам программист зачастую забывает, что же он написал несколько недель (а может и месяцев или лет) тому назад.

Все комментарии в макросах начинаются с ключевого слова REM . Весь текст строки после REM игнорируется компьютером при выполнении макроса. Можно также использовать символ одинарной кавычки ( ‘ ), чтобы начать комментарий.

Ключевые слова в LibreOffice Basic могут быть записаны в любом регистре, таким образом REM , Rem , и rem могут начинать комментарий. Если вы используете символические константы, определяемые в программном интерфейсе приложения (Application Programming Interface, API), безопаснее считать, что имена чувствительны к регистру. Символические константы не описаны в данном руководстве, они не нужны, когда вы используете функцию записи макросов в LibreOffice.

Определение процедур¶

Отдельные макросы сохраняются в процедурах, которые начинаются с ключевого слова SUB . Окончание процедуры обозначается END SUB . Код модуля в примере 3 начинается с определения процедуры, названной Main, в которой нет ничего, и она ничего не делает. Следующая процедура, EnterMyName , содержит сгенерированный код вашего макроса.

Когда LibreOffice создаёт новый модуль, в этот модуль всегда автоматически добавляется процедура с именем Main .

Существует много полезной информации, не вошедшей в данное руководство, однако знание о ней весьма интересно:

  • Вы можете написать процедуры, которые используют некоторые “входные” величины, называемые аргументами. Однако, функция записи макросов не предоставляет возможности использовать аргументы в процедурах.
  • Помимо процедур существуют также функции, которые могут “возвращать” значение. Функции определяются ключевым словом FUNCTION в начале. Однако, записанные макросы, – это всегда процедуры, а не функции.
Определение переменных¶

Вы можете записать информацию на листе бумаги и позднее воспользоваться этой информацией. Переменные, подобно листу бумаги, содержат информацию, которую можно изменять или читать. Ключевое слово Dim используется для описания типа переменной и для задания размерности массивов. Оператор dim в макросе EnterMyName используется подобно подготовке листа бумаги для записи информации.

В макросе EnterMyName переменные document и dispatcher определены с типом object (объект). Другие часто используемые типы переменных включают string (строка), integer (целое) и date (дата). Третья переменная с именем args1 – это массив значений свойств. Массивы это переменные, содержащие несколько величин, подобно тому, как в одной книге содержится несколько страниц. Величины в массивах обычно нумеруются начиная с нуля. Число в скобках задаёт максимальный номер, используемый для доступа к элементу массива. В данном примере в массиве содержится только одна величина, и она имеет номер ноль.

Как это работает¶

Разберёмся более подробно с кодом макроса EnterMyName . Может быть вы и не поймёте всех тонкостей, но разбор каждой строки в коде позволит вам осознать то, как работают макросы.

Name already in use

libreoffice-gettingstarted / docs / macros.rst

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink
  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents

Copy raw contents

Copy raw contents

Глава 13 – Работа с макросами в LibreOffice

Чаще всего, макрос это сохранённая последовательность команд или нажатий клавиш, предназначенная для последующего использования. Например, можно сохранить и «впечатывать» свой адрес. Язык программирования LibreOffice очень гибок и позволяет автоматизировать как простые, так и сложные задачи. Макросы часто используются, когда мы хотим повторять ещё и ещё раз определённую последовательность действий в схожих условиях.

Макросы в LibreOffice обычно записываются на языке, называемом LibreOffice Basic или просто Basic. Конечно можно долго изучить Basic и наконец начать программировать, но это руководство поможет вам сразу решать простые задачи. Начинающие пользователи часто с успехом применяют макросы, написанные кем-либо другим. Также, можно использовать функцию записи макросов, чтобы сохранить последовательность нажатий клавиш и использовать её ещё раз.

Большинство действий в LibreOffice выполняются путём отправки команды (посылки команды, dispatching a command), которая перехватывается и выполняется. Функция записи макросов позволяет записать непосредственные команды, которые обрабатываются (смотрите Платформа диспетчера).

Ваш первый макрос

Первый шаг в изучении программирования макросов, это найти и использовать существующие макросы. В этом разделе подразумевается, что у вас уже имеется макрос, который вы хотите использовать. Вы могли найти его в Интернете или в какой-нибудь книге. Рассмотрим пример 1. Чтобы записать этот макрос, вы должны предварительно создать библиотеку и модуль, и уже в модуле написать текст макроса, смотрите Организация макросов.

Пример 1: Простой макрос, который пишет «Hello, World»:

Чтобы создать библиотеку, необходимо выполнить следующие шаги:

  1. Выберете пункты главного меню :menuselection:`Сервис —> Макросы —> Управление макросами —> LibreOffice Basic` , чтобы открыть диалог работы с макросами Libreoffice Basic.

Диалог работы с макросами LibreOffice Basic

Диалог работы с макросами LibreOffice Basic

  1. Нажмите Управление, чтобы открыть диалог организатора макросов и выберите вкладку Библиотеки.
  2. Выберите в выпадающем списке Приложение/Документ пункт Мои макросы и диалоги.

Диалог организатора макросов LibreOffice Basic

Диалог организатора макросов LibreOffice Basic

  1. Нажмите Создать, чтобы открыть диалог создания новой библиотеки.
  2. Введите имя библиотеки, например, TestLibrary и нажмите OK.
  3. Выберите вкладку Модули.
  4. В списке модулей раскройте Мои макросы и выберите TestLibrary. Модуль с именем Module1 уже существует, он может содержать ваши макросы. Если необходимо, том можно нажать Создать, чтобы создать другой модуль в библиотеке.
  5. Выберите Module1 или новый модуль, который вы создали и нажмите Правка, чтобы открыть интегрированную среду разработки (IDE). Интегрированная среда разработки это текстовый редактор, включённый в LibreOffice, который позволяет создавать и редактировать макросы.

Интегрированная среда разработки макросов

Интегрированная среда разработки макросов

  1. После создания нового модуля он содержит комментарий и пустой макрос, названный Main, который ничего не делает.
  2. Добавьте новый макрос или до Sub Main или после End Sub . В примере ниже приведен новый макрос, который был добавлен до Sub Main .

Пример 2: Module1 после добавления нового макроса:

  1. Нажмите на значок Компилироватьch13-lo-screen-004 на панели инструментов, чтобы откомпилировать макрос.
  1. Поставьте курсор в процедуру HelloMacro и нажмите на значок Выполнить BASICch13-lo-screen-005 на панели инструментов или нажмите клавишу F5 , чтобы выполнить HelloMacro в модуле. Откроется маленький диалог со словом Привет . Если курсор не находится внутри процедуры Sub или функции Function , откроется диалог выбора макроса для запуска.
  1. Нажмите OK, чтобы закрыть диалог.
  2. Чтобы выбрать и выполнить любой макрос в данном модуле, нажмите значок Выбрать макросch13-lo-screen-006 на стандартной панели инструментов или выберите :menuselection:`Сервис —> Макросы —> Управление макросами —> LibreOffice Basic` .
  1. Выберите макрос и нажмите Выполнить.

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

Для некоторых типов многократно вводимой в документах информации более удобно создать файл автотекста. Описание работы с автотекстом смотрите в справочной системе и в главе :ref:`using-styles-and-templates` данного руководства.

  1. Убедитесь, что функция записи макросов активизирована, выбрав :menuselection:`Сервис —> Параметры —> LibreOffice —> Расширенные возможности` . Установите флажок Включить запись макросов. По умолчанию эта функция отключена, когда LibreOffice впервые установлен на ваш компьютер.
  2. Выберите :menuselection:`Сервис —> Макросы —> Записать макрос` из главного меню, чтобы запустить запись макроса. Появится маленький диалог, подтверждающий, что LibreOffice записывает ваши действия.

Диалог записи макроса

Диалог записи макроса

  1. Наберите желаемую информацию или выполните необходимые действия. Например, напечатайте ваше имя.
  2. Нажмите Завершить запись в маленьком диалоге, чтобы остановить запись, и появится диалог работы с макросами LibreOffice.
  3. Откройте библиотечный контейнер Мои макросы.
  4. Найдите библиотеку с именем Standard в Моих макросах. Обратите внимание, что каждый библиотечный контейнер содержит библиотеку Standard .
  5. Выберите библиотеку Standard и нажмите Создать модуль, чтобы создать новый модуль, содержащий макросы. Откроется диалог создания модуля.

Диалог создания модуля

Диалог создания модуля

  1. Задайте название для нового модуля, например, Recorded и нажмите OK, чтобы создать модуль. В диалоге работы с макросами теперь виден этот новый модуль в составе библиотеки Standard .
  2. В поле Имя макроса напечатайте имя для макроса, который вы только что записали, например, EnterMyName .
  3. Нажмите Записать, чтобы сохранить макрос и закрыть диалог работы с макросами.
  4. Если вы верно выполнили все шаги, описанные выше, библиотека Standard теперь содержит модуль Recorded , и этот модуль содержит макрос EnterMyName .

Когда LibreOffice создаёт новый модуль, в этот модуль автоматически добавляется процедура с именем Main .

  1. Выберите :menuselection:`Сервис —> Макросы —> Выполнить макрос` , чтобы открыть диалог выбора макроса.
  2. Например, выберите ваш только что созданный макрос EnterMyName и нажмите Выполнить.
  3. Можно также вызвать из главного меню :menuselection:`Сервис —> Макросы —> Управление макросами —> LibreOffice Basic` , чтобы открыть диалог работы с макросами, выбрать ваш макрос и нажать Выполнить.

Диалог выбора макроса

Диалог выбора макроса

Просмотр и редактирование макросов

Чтобы просмотреть или отредактировать созданные вами макросы выполните:

    , чтобы открыть диалог работы с макросами.
  1. Выберите ваш новый макрос EnterMyName и нажмите Правка, чтобы открыть макрос в интегрированной среде разработки.

Макрос EnterMyName не так уж сложен, как может показаться. Изучение нескольких вещей существенно поможет в понимании макросов. Начнём сначала и посмотрим на самую первую строку примера.

Макрос EnterMyName не так уж сложен, как может показаться. Изучение нескольких вещей существенно поможет в понимании макросов. Начнём сначала и посмотрим на самую первую строку примера.

Пример 3: Сгенерированный макрос EnterMyname :

Подробные комментарии являются необходимой частью программы. Без комментариев и сам программист зачастую забывает, что же он написал несколько недель (а может и месяцев или лет) тому назад.

Все комментарии в макросах начинаются с ключевого слова REM . Весь текст строки после REM игнорируется компьютером при выполнении макроса. Можно также использовать символ одинарной кавычки ( ‘ ), чтобы начать комментарий.

Ключевые слова в LibreOffice Basic могут быть записаны в любом регистре, таким образом REM , Rem , и rem могут начинать комментарий. Если вы используете символические константы, определяемые в программном интерфейсе приложения (Application Programming Interface, API), безопаснее считать, что имена чувствительны к регистру. Символические константы не описаны в данном руководстве, они не нужны, когда вы используете функцию записи макросов в LibreOffice.

Отдельные макросы сохраняются в процедурах, которые начинаются с ключевого слова SUB . Окончание процедуры обозначается END SUB . Код модуля в примере 3 начинается с определения процедуры, названной Main, в которой нет ничего, и она ничего не делает. Следующая процедура, EnterMyName , содержит сгенерированный код вашего макроса.

Когда LibreOffice создаёт новый модуль, в этот модуль всегда автоматически добавляется процедура с именем Main .

Существует много полезной информации, не вошедшей в данное руководство, однако знание о ней весьма интересно:

  • Вы можете написать процедуры, которые используют некоторые «входные» величины, называемые аргументами. Однако, функция записи макросов не предоставляет возможности использовать аргументы в процедурах.
  • Помимо процедур существуют также функции, которые могут «возвращать» значение. Функции определяются ключевым словом FUNCTION в начале. Однако, записанные макросы, – это всегда процедуры, а не функции.

Вы можете записать информацию на листе бумаги и позднее воспользоваться этой информацией. Переменные, подобно листу бумаги, содержат информацию, которую можно изменять или читать. Ключевое слово Dim используется для описания типа переменной и для задания размерности массивов. Оператор dim в макросе EnterMyName используется подобно подготовке листа бумаги для записи информации.

В макросе EnterMyName переменные document и dispatcher определены с типом object (объект). Другие часто используемые типы переменных включают string (строка), integer (целое) и date (дата). Третья переменная с именем args1 – это массив значений свойств. Массивы это переменные, содержащие несколько величин, подобно тому, как в одной книге содержится несколько страниц. Величины в массивах обычно нумеруются начиная с нуля. Число в скобках задаёт максимальный номер, используемый для доступа к элементу массива. В данном примере в массиве содержится только одна величина, и она имеет номер ноль.

Как это работает

Разберёмся более подробно с кодом макроса EnterMyName . Может быть вы и не поймёте всех тонкостей, но разбор каждой строки в коде позволит вам осознать то, как работают макросы.

Определение начала макроса:

Объект ThisComponent ссылается на текущий документ.

CurrentController – свойство, ссылающиеся на службу, которая управляет документом. Например, когда вы печатаете на клавиатуре, – это текущий процесс, который управляет вводом в документ того, что вы напечатали. CurrentController затем отправляет изменения в блок данных документа.

Frame – свойство службы, которое возвращает основной блок данных документа. Таким образом, переменная с именем document ссылается на блок данных документа, который получает команды диспетчера.

Большинство задач в LibreOffice выполняется посредством диспетчеризации (отправки) команды (dispatching a command). LibreOffice включает службу DispatchHelper , которая чаще всего применяется при использовании диспетчера в макросах. Метод CreateUnoService получает имя службы и пытается создать экземпляр этой службы. По завершении метода, переменная dispatcher содержит ссылку на службу DispatchHelper .

Определяет массив свойств. Каждое свойство имеет имя и значение. Другими словами, это пара имя/значение. Созданный массив содержит одно свойства, доступное по номеру ноль.

Задаём для свойства имя «Text» и значение «Иван Сидорович Петров», это значение и есть тот самый текст, который будет вставлен, когда макрос сработает.

Вот тут и случается чудо. Служба DispatchHelper посылает блоку данных документа (ссылка на который сохранена в переменной document) команду .uno:InsertText . Описание следующих двух аргументов выходят за рамки данного руководства. Последний аргумент – это массив свойств, используемый для выполнения команды InsertText .

Последняя строка кода, конец процедуры.

Если вы задумали создать макрос, то перед началом записи очень важно ответить на два вопроса:

  1. Ваша задача может быть записана как простая последовательность команд?
  2. Могут быть отдельные шаги расположены так, чтобы последняя команда оставляла курсор готовым к следующей команде или вводу текста или данных в документ?

Более сложный пример макроса

Быстрый запуск макросов

Проблемы с функцией записи макросов

Как при записи макросов работает диспетчер

Где сохраняются макросы?

Загрузка макросов для импорта

Как запускать макросы

Панели инструментов, пункты меню и быстрые клавиши

Где ещё найти информацию

Макросы, которые включены в LibreOffice

Печатные и электронные материалы

Footer

© 2023 GitHub, Inc.

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *