2.1. Об'єкти і класи.
Змінна-об'єкт, це змінна, яка містить в собі інші об'єкти, властивості і дії, що здійснюються над об'єктом, об'єкт є конкретною реалізацією, якого то класу (клас є опис, деякого безлічі об'єктів з одними і тими ж властивостями). Зазвичай доступ до властивостей і функцій складних типів даних (таких як класи) здійснюється шляхом написання імені змінної об'єкта, а потім через точку імені функції і чи властивості даного об'єкта.
2.2. Змінні і об'єкти в Basic
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 [step s] Rem тіло циклу
Мінлива Index пробігає значення від n1 до n2 c інкрементація s (збільшення на s), в даному випадку s може бути змінної або константою цілого типу, квадратні скобочки вказують на те, що конструкція є не обов'язковою, в разі якщо вона не вказується то крок дорівнює 1.
For 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 <последовательность операторов если условие выполняется> [else <последовательность операторов в случае невыполнения условия>] End if Приклад: якщо I менше 100 (якщо умова виконана) то збільшити I на 1, інакше зменшити на 1. If i<100 then i=i+1 else i = i-1 end if Функції та процедури представляють собою окремі блоки операторів, які можуть бути викликані в основній програмі або підпрограми, зазвичай виклик функції або процедури здійснюється в програмі за допомогою вказівки її імені та переданих в неї параметрів, після виконання операторів функції управління повертається програмі або підпрограми викликала її і починається виконання операторів наступних за функцією або процедурою. Очевидно, що призначення процедур і функцій в тому, щоб не писати кожен раз один і той же код для часто повторюваних операцій виконують певне логічно завершене дію. При цьому всередині функцій і процедур можливо використовувати свої локальні змінні, які можуть мати ті ж назви, що і змінні в інших процедурах і функціях і в основній програмі. При цьому ззовні процедури ми не можемо змінювати локальні змінні функції. Типове використання процедур і функцій полягає, в тому що ми передаємо в функцію якісь значення, на основі яких ця функція виробляти ряд дій і обчислення якогось результату. Основна відмінність процедур від функцій в тому, що ім'я функції асоційований якийсь тип повертаються даних, грубо кажучи, функцію можна використовувати у виразах, наприклад, арифметичних або в логічних, в умовних операторах і циклах. Процедура викликається поза будь-якого виразу. Функція повертає суму двох чисел, що передаються як фактичні параметри в функція з зовнішньої програми Function sum (a, b as integer) as integer Sum = a + b Використання функції sum в програмі. Dim x as integer Приклад процедури дозволяє скласти два числа, значення повертається в формальному параметрі с, при виклику процедури не повинно бути константою, а повинно бути змінної типу integer Sub sum (a, b, c as integer)2.4. Процедури і функції.
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
У LibreOffice, як уже зазначалося, об'єктна модель дещо інша ніж в Microsoft Office, в LibreOffice Basic використовується так називаємося уніфікована мережева об'єктна модель UNO. Нижче наведено приклад макросу openoffice збільшує розмір шрифту кожного параграфа.
Dim Doc As Object
Dim Enum As Object
Dim TextElement As Object
'StarDesktop - головний об'єкт доступний з макросу
'Створення посилання на об'єкт document, поточний документ Doc = StarDesktop.CurrentComponent
'Створення об'єкта enumeration
'Цикл по всіх текстових елементів While Enum.hasMoreElements TextElement = Enum.nextElement
'Перевірка чи є поточний блок таблицею
If TextElement.supportsService ( "com.sun.star.text.TextTable") Then
MsgBox "Поточний блок містить таблицю"