Інтернет Windows Android

Макроси в libreoffice calc. Як увімкнути макроси в LibreOffice Calc

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


Для більшості людей макрос – це щось незрозуміле, і, мабуть, зайвий винахід. Для них воно не тільки не оптимізує роботу, а ще й збільшує її. Ця думка викликана нерозумінням принципів використання макросів. Макроси використовуються тоді, коли необхідно виконати якусь дію багато разів. Найчастіше це однотипна обробка документа (складне форматування, вибірки), іноді форми для заповнення, формули, розрахунки для графіків... Відштовхуючись від цього та від своїх переваг ми вибираємо спосіб зберігання наших макросів:

  • глобальний(або надбудова) - доступний завжди при відкритті програми;
  • шаблонний- Доступний при відкритті конкретного шаблону;
  • локальний- Доступний при роботі тільки в конкретному документі.

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


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

Підключення інструменту «Записати макрос» у 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.

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

Що ж таке макроси та навіщо вони?

Макрос- Це послідовність певних дій, які можна записати за допомогою звичайного меню. Коли ви вибираєте запис макросу, дії, які ви виконуєте, автоматично зберігаються у вигляді коду скрипта. І в подальшій вашій роботі він буде виконуватися самостійно, точно повторюючи Ваші дії в програмі. Макрос може бути як простим, так і дуже складним – все залежить від того, який Вам необхідно досягти результату. Головні критерії, які пред'являються макросам - це бути потужним і одночасно простим у використанні. Макроси LibreOffice відповідають таким вимогам. Давайте спробуємо це практично.

Для використання пакету LibreOffice,Вам потрібно мати встановлену операційну систему Linux, Windows або MacOS, а також встановлений пакет 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 тощо). Тепер, коли Ви знаєте, як створювати макроси, ви можете легко створювати власні, для того, щоб полегшити свою роботу.
Метою цієї статті є вивчення основ роботи за допомогою інструменту для запису макросів.

Іноді потрібно провести роботу з текстом або обробити текст будь-яким складним чином і звичайних засобів, що надаються інтерфейсом для цього не вистачає. Крім того, буває необхідно провести ту саму послідовність рутинних дій, що часом займає багато часу, а хотілося б звести послідовність цих дій до одного натискання кнопки. Writer дозволяє створювати спеціальні макроси, які є по суті процедурами обробки тексту, написані мовою програмування, в нашому випадку як мову програмування виступає мова Бейсік. При цьому, володіючи безліччю всіх стандартних операторів властивих мов програмування високого рівня, можна отримати доступ до об'єктів текстового редактора Writer, відкритих документів, функцій відкриття документів, всіх об'єктів даного документа, включаючи малюнки, параграфи, колонтитули, виділений текст, списки, слова, літери, шрифти і т.д.

2.1. Об'єкти та класи.

Що таке Об'єкт. З погляду реального світу об'єкт це щось матеріальне, що існує і має властивості і поведінку в реальному світі, часто об'єкти мають якісь спільні властивості, завдяки яким ми відносимо кожен об'єкт до якогось класу об'єктів. Наприклад - автомобіль, є різні конкретні реалізації та об'єкти автомобілі, але загальним класом є автомобіль, що має чотири колеса, здатний їздити і керований водієм. Те саме можна сказати і про текст або документ, документ це об'єкт, який містить об'єкт текст, а об'єкт текст містить об'єкти слова, абзаци, літери, текст редагується, змінюється, відображається, документ створюється та зберігається. Всі ці дії ми виконуємо з цими об'єктами, використовуючи функції редактора, але ми можемо викликати ці функції за допомогою алгоритмічної мови.

Якщо ви вже працювали з мовами програмування та писали програми, то знаєте що в будь-якій мові програмування існує набір операторів або інструкцій, за допомогою яких можна записати вказівки або програму, яку зможе зрозуміти та виконати процесор. Існує набір стандартних операторів за допомогою яких можна написати практично будь-який алгоритм, будь-якої складності – це розгалуження, цикл, лінійна послідовність виконання операторів, арифметичні дії та можливість звернення до змінних та запису в них якихось значень чи результатів логічних чи арифметичних виразів. Зазвичай у мовах високого рівня намагаються уникнути складної роботи з пам'яттю властивою машинним мовам, запроваджується стандартна операція присвоєння, яка дозволяє певній – змінній – символьній послідовності надати якесь значення. Грубо кажучи, використовуючи цю символьну послідовність у виразах ви працюєте з тим, що міститься в цій змінній як у скриньці. Можна операцію присвоєння описати так: У склянку з назвою – St1, ми заливаємо молоко з кружки Cr1 і кажемо, налийте мені молоко у St1 із Cr1. Таким чином, вам наллється те, що міститься у Cr1. Теж саме і зі змінною. Припустимо, Val1 = 20; Val2 = 30; Val3 = Val1 + Val2; тоді Val3 міститиме значення 50. Ви знаєте, що змінна може містити лише дані певного виду, а чи не все поспіль (хоча існують спеціальний варіантний тип даних, коли тип змінної можна визначити у процесі виконання програми). Адже ми можемо зберігати і назви (рядки) та числа, і об'єкти. Тому кожній змінній ставиться у відповідність якийсь тип даних, або домен або область визначення тих значень, які вона може набувати. Зазвичай у мовах програмування – це цілочисельні типи, речові, рядкові, символьні, логічні, перераховані, множини, комплексні числа, тип запису чи структури. Так що ж таке змінна об'єкт, це якесь посилання на об'єкт, що є складною структурою даних, яка може містити методи роботи з цими даними та об'єктом, а також захищати дані і обмежувати або дозволяти до них доступ.

Змінна-об'єкт, це змінна, яка містить у собі інші об'єкти, властивості та дії, що виробляються над об'єктом, об'єкт є конкретною реалізацією якогось класу (клас є опис якогось безлічі об'єктів з одними і тими ж властивостями). Зазвичай доступ до властивостей та функцій складних типів даних (таких як класи) здійснюється шляхом написання імені змінної об'єкта, а потім через точку імені функції або властивості даного об'єкта.

2.2. Змінні та об'єкти в Basic

Для оголошення змінної вказується ключове слово dim і потім список змінних через кому, слово as і тип змінної.

Dim a, b as integer – оголошення змінної цілого типу. Dim s as string – оголошення змінної рядкового типу.

Dim mass() as integer – оголошення динамічного одновимірного масиву цілого типу. Redim mass(100) – зміна довжини масиву та встановлення її рівною 100.

Dim desk as com.sun.star.frame.Desktop – змінна типу desktop уніфікованої мережевої моделі UNO, ця змінна може посилатися на об'єкти типу Desktop.

У мові Basic можна звертатися до змінних являють собою посилання на об'єкти, це можуть бути об'єкти текст, параграфи, таблиці, що відображаються на екрані вікна, вони мають набор властивостей і методів роботи з даними об'єктами. Об'єктна модель може бути будь-якою, як і її реалізація, наприклад, у пакеті Microsoft Office реалізована своя об'єктна модель, у пакеті LibreOffice або OpenOffice своя, тому об'єкти та спосіб взаємодії з цим об'єктами в цих різних пакетах відрізняються.

2.3. Оператори Basic

Оператор циклу For.

For index=n1 to n2 Rem тіло циклу

Змінна Index пробігає значення від n1 до n2 c інкрементацією s (збільшення на s), в даному випадку s може бути змінною або константою цілого типу, квадратні дужки вказують на те, що конструкція є не обов'язковою, якщо вона не вказується, то крок дорівнює 1.

Наприклад, val =0

Для xyz = 4 to 50 step 4 val=val+xyz

Алгоритм обчислює суму значень від 4 до 50 з кроком 4, тобто суму 4, 8, 12, 16...

до 48 змінну val. val1 =0

For aval = 1 to 50 val1=val1+aval next aval

У разі розраховується сума цілих чисел від 1 до 50.

Оператор циклу While, роби поки що виконується умова. Оператори всередині циклу повторюються до тих пір, поки виконується умова.

While<условие>оператори Wend

Приклад: While i

Цикл виконується поки що змінна i менше N. Умовний оператор If,

if<условие>then

<последовательность операторов если условие выполняется>end if

Приклад: якщо I менше 100 (якщо умова виконана), то збільшити I на 1, інакше зменшити на 1.

If i<100 then i=i+1

else i=i-1 end if

2.4. Процедури та функції.

Функції та процедури являють собою окремі блоки операторів, які можуть бути викликані в основній програмі або підпрограмі, зазвичай виклик функції або процедури здійснюється в програмі за допомогою вказівки її імені та параметрів, що передаються в неї, після виконання операторів функції управління повертається програмі або підпрограмі викликала її і починається виконання операторів наступних за функцією чи процедурою. Очевидно, що призначення процедур і функцій у тому, щоб не писати щоразу один і той же код для операцій, що часто повторюються виконують певну логічно завершену дію. При цьому всередині функцій і процедур можна використовувати свої локальні змінні, які можуть мати ті ж назви, що і змінні в інших процедурах і функціях і в основній програмі. У цьому ззовні процедури ми можемо змінювати локальні змінні функції. Типове використання процедур і функцій полягає в тому, що ми передаємо в функцію якісь значення, на основі яких ця функція виробляє ряд дій і обчислення якогось результату. Основна відмінність процедур від функцій у тому, що імені функції асоційований якийсь тип даних, що повертаються, грубо кажучи, функцію можна використовувати у виразах, наприклад, арифметичних або в логічних, в умовних операторах і циклах. Процедура викликається поза будь-яким виразом.

Функція повертає суму двох чисел, що передаються як фактичні параметри у функцію із зовнішньої програми

Function sum(a,b as integer) as integer Sum=a+b

Використання функції sum у програмі. Dim x as integer

x = 2 x = x + sum (x, 4) * 2

Приклад процедури, що дозволяє скласти два числа, значення повертається у формальному параметрі з, при виклику процедури не повинно бути константою, а має бути змінною типу integer

Sub sum (a, b, cas as integer)

Dim c as integer Call sum(2,2,c)

2.5. Створення макросу в LibreOffice

Для створення макросу в LibreOffice вибираємо сервіс+макроси+управління макросами+LibreOffice Basic (Tools+Macros+Organize Macros). При цьому відобразиться вікно, що представлене на малюнку нижче (рисунок 19). Щоб макрос був збережений у самому документі, необхідно вибрати ваш документ, вибрати набір стандартних модулів «standard» і потім натиснути «створити», потім необхідно ввести ім'я модуля. Після створення модуля можна його вибрати, у вікні праворуч вибрати макрос Main і натиснути редагувати (Edit). Або необхідно після створення модуля (Module1), написати в полі Macro Name (Ім'я макросу) нове ім'я макросу та натиснути створити (рисунок 20).

Малюнок 19 - Вікно створення та редагування макросів

Рисунок 20 – Приклад створення нового макросу MyMainMacros

В результаті створення та редагування макросу з'являється вікно редактора Бейсіка, на малюнку наведено приклад із двома макросами, природно їх може бути більше і вони можуть мати вхідні параметри.

Малюнок 21 - Редактор Basic та два макроси

У LibreOffice, як вже зазначалося, об'єктна модель дещо інша, ніж у Microsoft Office, у LibreOffice Basic використовується так звана уніфікована мережна об'єктна модель UNO. Нижче наведено приклад макросу OpenOffice збільшує розмір шрифту кожного параграфа.

Dim Doc As Object

Dim Enum As Object

Dim TextElement As Object

" StarDesktop - головний об'єкт, доступний з макросу

" створення об'єкта enumeration

Enum = Doc.Text.createEnumeration

" цикл по всіх текстових елементах While Enum.hasMoreElements TextElement = Enum.nextElement

" перевірка чи є поточний блок таблицею

If TextElement.supportsService("com.sun.star.text.TextTable") Then

MsgBox "Поточний блок містить таблицю"

Будь-які матеріали я публікую у двох форматах - odtі pdf. Останній зручний для розповсюдження. Експорт у pdfздійснюється штатними засобами LibreOffice через діалог « Файл → Експорт PDF». У процесі вичитування керівництва та виправлення помилок доводиться часто перезберігати документ. І щоб щоразу вручну не експортувати документ, я подумав, що було б непогано, якби це відбувалося автоматично при збереженні odfфайлу. І знання мови макросів LibreOffice в даному випадку абсолютно не потрібне.

Завдання вирішується за допомогою функції запису макросу. За промовчанням вона недоступна. Щоб увімкнути її, перейдіть в « Сервіс → Установки" в розділі " LibreOffice» виберіть пункт « Розширені можливості» та встановіть галочку навпроти « Включити запис макросів».

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

Після натискання « Сервіс → Макроси → Записати макрос» на екрані випливе віконце з кнопкою « Завершити запис».

Суть проста:

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

Для зручності я створив модуль Export_to_PDF" у бібліотеці " Standardі зберіг свій макрос у цьому модулі.

Тепер залишається лише призначити спрацювання макросу на певну подію. У нашому випадку збереження документа. Ідемо в « Сервіс → Налаштування» на вкладку « Події».

Увага! Написання макросу виконувалося в 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. з трьома точками, дивіться цифру 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), тобто. ми вибираємо наш макрос з ім'ям 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), тобто. ми вибираємо наш макрос з ім'ям Main.

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

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