Автоматичне створення макросів

2. Автоматичне створення макросів

Щоб створити свій макрос в OpenOffice. org не обов'язково бути програмістом. В OpenOffice. org є вбудована програма реєстратор яка може запам'ятовувати всі дії користувача з документом і записувати їх послідовно в спеціальний текстовий модуль званий Макрос.

2.1. запис макросу

Для автоматичного створення макросу необхідно виконати наступні дії

Відкрийте документ, для якого потрібно записати макрос.

Виберіть команди Сервіс => Макрос => Записати макрос.

Відкриється маленьке діалогове вікно Запись макроса з однієї тільки кнопкою «Завершити запис» (Рис. 1).

Виконайте дії, які хочете записати в документі.

Натисніть ESC, щоб зняти виділення об'єкта, оскільки в даний час макрорегістратор не записує це дія, вироблене клацанням миші.

Натисніть кнопку «Завершити запис».

Відкриється діалогове вікно Макрос. в якому можна зберегти і виконати макрос (Рис.2).

Автоматичне створення макросів

Мал. 2. Діалог збереження макросу.

Якщо потрібно перервати запис, не зберігаючи макрос, натисніть кнопку Закрити в діалоговому вікні Макрос.

Щоб зберегти макрос в файлі лабораторної роботи, спочатку в списку Зберегти макрос в виберіть об'єкт (наприклад, Лаб.раб.7), в якому хочете зберегти макрос.

Якщо потрібно зберегти макрос в новій бібліотеці або модулі, натисніть кнопку Нова бібліотека або Новий модуль і введіть ім'я бібліотеки або модуля.

У текстовому полі Назва макросу введіть ім'я нового макросу.

Натисніть кнопку «Записати».

Такі дії не реєструються:

Відкриття вікон не реєструється.

Дії, виконані в інших вікнах (де реєстратор не запущений), не реєструються.

Перехід між вікнами не реєструється.

Дії, які не пов'язані з вмістом документа, не реєструються. Наприклад, зміни, внесені в діалогове вікно "Параметри", організатор макросів, настройки.

Виділення реєструються тільки в тому випадку, якщо вони виконуються за допомогою клавіатури (переміщенням курсора), але не реєструються при використанні миші.

Макрорегістратор працює тільки в Calc і Writer.

Активуйте лист «Макрос», а якщо його немає, то перейменуйте «Лист 1»;

Заповніть таблицю як на малюнку (Рис. 3)

Виконайте команду Сервіс => Макрос => Записати макрос;

За допомогою автозаповнення заповніть першу колонку до 10;

Натисніть кнопку «Записати»;

Збережіть макрос з ім'ям «Zadanie1» в файлі лабораторної роботи (Рис. 4.);

Примітка: У поточній версії (2.4) українські імена макросів не допускаються.

Очистіть в першій колонці осередку до вихідного стану, тобто залиште заповненими лише першу і другу осередки колонки;

Встановіть курсор в осередок A1 і виконайте команду Сервіс => Макрос => Виконати макрос;

У вікні «Вибір макросу» знайдіть ваш макрос і натисніть кнопку «Виконати» (Рис. 5).

Автоматичне створення макросів

Мал. 5. Запуск макросу.

В результаті у вас повинні автоматично заповниться осередки, з 3 по 10.

Далі ми вдосконалюємо свій макрос, додавши йому можливість автоматично заповнювати потрібну кількість осередків, методом автозаповнення, в тій колонці, в якій встановлений курсор.

2.2. редагування макросів

В OpenOffice. org є можливість розробляти макроси на різних мовах програмування, але в даній роботі ми будемо використовувати OpenOffice. org Basic (Бейсік). Це пов'язано з тим, що ця мова більш схожий на макромова Microsoft Visual Basic for Application (VBA) і після його освоєння ви зможете без праці розібратися з подібними завданнями в Microsoft Office

У діалозі Макрос виберіть макрос «Zadanie1» і натисніть кнопку редагувати (Рис. 6);

Лістинг 2.2.1 .: Універсальний макрос автозаповнення.

dim CurRowNumber as Long 'Номер рядка на якому стоїть курсор

dim EndRowNumber as Long 'Змінна в яку записується введене значення

rem Тут визначаємо змінні для доступу до документа

document = ThisComponent.CurrentController.Frame 'Поточний документ

dispatcher = createUnoService ( "com.sun.star.frame.DispatchHelper")

Selection = document.Controller.Selection 'Виділення

'Номер поточного рядка (рахунок з нуля)

'Ім'я поточної колонки

CurColumnName = Selection.Columns.ElementNames (0)

StartCell = "$" CurColumnName "$" CStr (CurRowNumber + 1) 'Початкова осередок

'Просимо користувача ввести число рядків і

'Додаємо це число до номера поточного рядка

EndRowNumber = CurRowNumber + CLng (InputBox ( "Введіть число:". "Введення кількості рядків (Max 65536)". "10"))

EndCell = "$" CurColumnName "$" CStr (EndRowNumber)

dim args1 (0) as new com.sun.star.beans.PropertyValue

args1 (0). Name = "ToPoint"

'І замінимо нашої змінної для початкової комірки

args1 (0). Value = StartCell ' "$ A $ 1: $ A $ 2"

'Завдання стартової позиції

dispatcher.executeDispatch (document. ". uno: GoToCell". "". 0, args1 ())

dim args2 (0) as new com.sun.star.beans.PropertyValue

args2 (0). Name = "EndCell"

'Замінюємо значення на змінну кінцевої комірки

args2 (0). Value = EndCell ' "$ A $ 10"

'Запускаємо функцію автозаповнення

dispatcher.executeDispatch (document. ".uno: AutoFill". "". 0, args2 ())

'Rem dim args3 (0) as new com.sun.star.beans.PropertyValue

'Dispatcher.executeDispatch (document, ".uno: GoToCell", "", 0, args3 ())

Для призначення макросу комбінації клавіш виконайте команду Сервіс => Налаштування і відкрийте вкладку Клавіатура;

Автоматичне створення макросів

Мал. 8. Призначення макросу комбінації клавіш.

Натисніть кнопку ОК;

Використовуючи комбінацію клавіш призначену на макрос заповніть список днів тижня і місяців року (Рис. 9.).

Автоматичне створення макросів

Рис 9. Результат виконання макросу.

Самостійно вивчіть діалог настройки (Сервіс => Налаштування) і назначтьте макрос «Zadanie1» на панель інструментів і створіть нове меню Макроси, в яке також назначте макрос.

Порада: Використовуйте довідку OpenOffice. org. для виконання завдань. (Кнопка F1. Або меню Довідка => Довідка поOpenOffice.org)

Схожі статті