LibreOffice: Автоматичний експорт у PDF (Приклад роботи з макросами без знання мови макросів). Написання VBA макросів у LibreOffice Конвертер макросів excel у 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...»), виділити потрібний макрос і натиснути Запустити».


Інтерфейс

але докорінно відрізняється від Microsoft Office Excel 2010.

У MS Excel 2010 є так звана "стрічка меню" - революційне рішення від компанії Microsoft, впроваджене в MS Office 2007, яке багатьом довелося не до душі і навіть були розроблені спеціальні утиліти, що повертають зовнішній вигляд MS Office 2010 до MS Office 2003.

Розглянемо більш детально найважливіші елементи меню вищезгаданих редакторів електронних таблиць.

У редакторах електронних таблиць (MS Excel, OOo Calc, LiO Calc, IBM Lotus Symphony Spreadsheets і т.д.) найважливішим елементом є "комірка" і всі операції, що здійснюються в редакторах електронних таблиць, застосовуються саме до осередків або їх групи (рядки, стовпці і т.д.). Тому в першу чергу розглянемо елементи меню щодо форматування осередків.

У LiO Office, як і в MS Office 2003, форматування осередків здійснюється через пункт меню - "Формат/Комірки" або поєднанням клавіш "Ctrl+1".

У MS Excel 2010 форматування осередків здійснюється на вкладці "Головна".

Інші елементи меню MS Excel 2010 (Вставка, Розмітка сторінки, Формули, Дані, Рецензування тощо) у LiO Calc знаходяться у схожих за назвою пунктах меню.

Наступним найважливішим елементом електронних таблиць є "Функції", або ж "Формули".

У MS Excel та LiO Calc назви (абревіатури) всіх формул схожі, тому перехід з MS Excel на LiO Calc для фахівців, що працюють у MS Excel, буде не складним Досить детальний перелік функцій та їх відповідність у MS Excel та OOo Calc (LiO Calc) опубліковані на сайті компанії "Інфра-Ресурс", провідного інтегратора рішень на базі OpenOffice.org в Російській Федерації. Але тут є і "підводне каміння"... Це - гарячі клавіші. Для тих, хто звик працювати в MS Excel за допомогою гарячих клавіш, можуть виникнути певні неприємності, але як для рядових користувачів, так і для організацій, факт того, що на одній копії MS Excel можна заощадити, як мінімум, $55, може послужити Досить серйозним стимулом переходу на LiO.


Сумісність

Одним із найбільш "хворих місць" при переході з MS Excel на LiO Calc є проблеми із сумісністю, і найбільша проблема - робота з макросами. Ця проблема була особливо гострою для версій OpenOffice.org 1 і 2, починаючи з 3-ї версії OpenOffice.org і LibreOffice це питання практично вирішено. LibreOffice Calc 3.5 може виконувати більшість макросів MS Excel. Вмикається / вимикається ця функція в меню: Сервіс > Установки > Завантаження / Збереження > Властивості VBA

Аналогом VBA в LiO Calc є макромова StarBasic (його різновид - LibreOffice Basic), що використовує ту ж логіку програмування, що і Microsoft Visual Basic, тому спеціалістам, які працювали в MS Excel з макросами, буде неважко освоїтися в LiO Calc.

Аналогом VBA в LiO Calc є макромова StarBasic.

Тим не менш, проблеми все ж таки залишилися. Справа в тому, що середовищем, в якому пишуться макроси, є офісний пакет, а не макромова. Таким чином, мова програмування не є самостійним середовищем, а повністю залежною від внутрішньої об'єктної структури офісного пакета та реалізованої в ньому системи виклику команд. Результатом є технічна неможливість забезпечити повну сумісність макромов різних офісних пакетів. Тому потрібно переписувати макроси Microsoft Office перед запуском їх у OpenOffice.org або LibreOffice. Далі, щоб не вдаватися до всіх технічних подробиць, скажу, що існують програми-конвертори, які спрощують роботу з макросами VBA в LibreOffice. Також дуже детально розглянуті всі можливі питання роботи з макросами VBA в середовищі OpenOffice на сайті компанії "Інфра-Ресурс" (див. вище) в розділах "База знань" та "Підтримка користувачів OpenOffice.org".

Ну і на закріплення до всього вищесказаного, перевіримо на практиці сумісність документів MS Excel і LiO Calc. Для цього візьмемо готові шаблони бухгалтерських документів із сайту журналу "Головний бухгалтер", які підготовлені за допомогою MS Excel 97-2003 (розширення XLS) та MS Excel 2010 (розширення XLSX), і в яких використовується велика кількість математичних та економічних функцій. В результаті роботи з файлами (відкриття, редагування, збереження, конвертація в ODS) була помічена наступна закономірність: зазвичай помилки при включенні макросів виникали у версіях файлів, збережених у форматі MS Excel 98-2003 (.xls). У версіях, створених у MS Excel 2007-2010, помилки виникають значно рідше.

Файли, створені в MS Excel без використання макросів, відкриваються, читаються, редагуються тощо. взагалі без будь-яких проблем. Конвертація з XLSX в ODS і назад, також виконується без помилок із збереженням параметрів форматування тексту.

Файли, створені в MS Excel без використання макросів, відкриваються, читаються, редагуються тощо. взагалі без будь-яких проблем.


Висновки

Таким чином, ми можемо зробити такі висновки.

Що стосується інтерфейсу LibreOffice Calc, то у користувачів, які раніше працювали в MS Excel 98-2003, проблем з переходом на Calc виникнути не повинно, а ті, хто звик працювати з "стрічковим" інтерфейсом MS Excel 2007 - 2010, будуть змушені звикнути до трохи іншому виді робочого вікна.

Дані LiO Calc вводяться, редагуються, сортуються також як і в MS Excel. Розрахунки виробляються в LiO Calc з допомогою тих самих функцій, що у MS Excel.

Що ж до складнощів роботи з макросами, слід зазначити, що у версіях LiO Calc і OOo Calc вище 3.0 ця проблема практично вирішена, а при виникненні будь-яких помилок є можливість конвертації макросів VBA в LibreOffice Basic.

Сергій РИЖКОВ

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

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

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

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

Суть проста:

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

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

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

Інвайт отримано. :)

Привіт, хабражителі!
Сьогодні я хочу Вам розповісти про використання макросів 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,c 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 "Поточний блок містить таблицю"

© 2022 androidas.ru - Все про Android