Введення в basic є і просто про роботу в офісних пакетах

Одним з властивостей Open Office.org, яке деякі користувачі не беруть до виду, є вбудований мова програмування OpenOffice.org Basic. Для чого потрібно вбудовувати мову програмування в ваш текcтовий процесор? Саме для того, щоб автоматизувати часто виконувані завдання. Чай за тебе не приготує, але дозволить автоматизувати часто виконувану роботу з мінімумом зусиль.

Ви можете, наприклад, захотіти згенерувати дані з командного рядка і представити їх як таблицю в документі Writer або ви можете отримати дані з інших джерел і сформатувати їх для щотижневого звіту або листи клієнту. Кожна з цих завдань вимагає значних витрат часу, якщо їх виконувати вручну, але OpenOffice.org Basic зможе допомогти мінімізувати час, який ви проведете, виконуючи рутинні речі, і дозволяє вивільнити більше часу для більш цікавих занять.

Створення макросу OpenOffice.org

Отже, як почати модифікацію OpenOffice.org Writer з метою зробити його трішечки краще? Для початку ви повинні створити підпрограму Basic або функцію, які зазвичай іменуються макросами.

Перейдіть в меню Writer і натисніть пункті Сервіс. Ви побачите підменю, зване Макроси. Якщо ви помістіть курсор миші на нього, побачите опції макросів, доступні для вас. Нас в даний момент цікавить пункт Управління макросами. З наступного підміню виберіть OpenOffice.org Basic. .

Вам представиться вікно діалогу, яке дозволить вибрати новий макрос або вибрати вже існуючий для редагування. За замовчуванням додаток створить макрос з ім'ям Main. Ви виявите, що перебуваєте у вікні редагування макросу і ви побачите щось схоже на наступне:

Введення в basic є і просто про роботу в офісних пакетах

Тепер ви зможете створити свій перший макрос. За традицією почнемо з «Hello, world»

Введення в basic є і просто про роботу в офісних пакетах

виконання макросу

Природно, ви захочете побачити результат вашої тяжкої роботи. Поверніться у вікно OpenOffice.org Writer. Перейдіть в меню і знову виберіть меню Сервіс -> Макрос. Тепер ви можете використовувати або пункт Управління макросами. або просто використовувати кнопочку Виконати макрос на панелі інструментів.

Введення в basic є і просто про роботу в офісних пакетах

Більш складний макрос

Тепер подивимося на макрос OpenOffice.org Basic, який має практичне застосування. Наступний приклад макросу перетворює документ, який використовує Англійська мова Великобританії в Американський Англійська діалект.

Якщо ви раніше використовували Visual Basic або VBScript в Windows, ви повинні дізнатися основний формат і функціональність. Якщо немає, можливо, знадобиться невелике пояснення.

Записані дві підпрограми: toUsaSpelling і doReplace. Підпрограма toUsaSpelling створює два масиви searchArray і replaceArray. містять англійські слова і їх американські еквіваленти. Вона (підпрограма) далі крок за кроком перебирає вищезгаданий масив і викликає підпрограму doReplace. яка через дві вхідні змінні і замінює одне слово іншим у всьому документі OpenOffice.org.

OpenOffice.org Basic використовує всі типи звичних циклів і керуючих структур, які ви знайдете в будь-якій мові програмування, нарівні з деякими, які прийшли безпосередньо з Visual Basic. Наприклад, doReplace використовує функцію ubound, котроие повертає найбільший номер індексу масиву. Ця функція корисна в циклах, так як в цьому випадку вам не треба відстежувати поточний розмір масиву.

Зауважте, що doReplace посилається на ThisComponent. ThisComponent представляє поточний документ OpenOffice.org.

Наступне: Вставка інформації з зовнішнього файлу.

Заповнення даних в таблиці може стати найбільш витратною за часом частиною при створенні звіту, але таблиці роблять документ Новомосковскбельним, так що варто потурбуватися про автоматизацію процесу. Наступний макрос відкриває файл і завантажує дані з нього в таблицю. Таким чином, таблиця заповнюється значеннями полів імені користувача та домашньої директорії з файлу / etc / passwd.

Sub doPasswdTable
Dim filenumber As Integer
Dim lineNumber As Integer
Dim lineCount As Integer
Dim iLine As String
Dim file as String
Dim doc as object
Dim table as object
Dim cursor as object
Dim cellname as object
Dim cell as object
file = "/ etc / passwd"
'Get line count
lineCount = 0
filenumber = Freefile
Open file For Input As filenumber

While not EOF (filenumber)
Line Input #filenumber, iLine
If iLine <> "" Then
lineCount = lineCount + 1
end if
wend
Close #filenumber

doc = thisComponent
cursor = doc.text.createTextCursor ()
table = doc.createInstance ( "com.sun.star.text.TextTable")
table.initialize (lineCount + 1,2)
doc.Text.insertTextContent (cursor, table, False)

cell = table.getCellByName ( "A1")
cell.string = "Username"
cell = table.getCellByName ( "B1")
cell.string = "Home Directory"

filenumber = Freefile
lineNumber = 2
Open file For Input As filenumber
While not EOF (filenumber)
Line Input #filenumber, iLine
If iLine <> "" Then
Dim iArray
iArray = split (iLine, ":")
cell = table.getCellByName ( "A" lineNumber)
cell.string = iArray (0)
cell = table.getCellByName ( "B" lineNumber)
cell.string = iArray (5)
lineNumber = lineNumber + 1
end if
wend
Close #filenumber
End Sub

Велика частина коду досить стандартна - ви можете бачити приклад операторів циклів while..wend і if..end if. Ви також можете звернути увагу на оператор doc = thisComponent; який дозволяє нам посилатися на doc замість довшого позначення thisComponent.

Рядок filenumber = Freefile привласнює значення унікального ідентифікатора ID змінної номера файлу для того, щоб вам не було необхідним запам'ятовувати будь-які інші вже призначені ID.

Команда split особливо корисна. Вона отримує в якості вхідних даних рядок і повертає масив подстрок цього рядка, розбитою по разделителю, який ви вказали. У наведеному вище прикладі ми використовували двокрапка (:) для визначення роздільник у файлі паролів.

І останнє: один рядок може здатися дивною на перший погляд: Open file For Input As filenumber.
Вона вказує на той факт, що ми використовуємо це як вхід для підпрограми, а не те, що ми збираємося в неї щось передавати

На закінчення:

Ми привели найкоротший з можливих введень в експлуатацію Basic в OpenOffice.org Writer. Ми не розглядали використання форм, виклики з інших документів, або те, як отримувати дані з баз даних.

Якщо ви хочете дізнатися більше про програмуванні в OpenOffice.org Basic, то OpenOffice.org поставляється з довідкою, в якій є список всіх функцій і процедур, які можливі [1].

OpenOffice.org Basic - корисний інструмент для автоматизації щоденних завдань - ще один шлях для більш розумного підходу до роботи.

  • [1] правильніше - «визначені» прім.пер.