Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
open-offis-calk.doc
Скачиваний:
36
Добавлен:
16.11.2018
Размер:
515.58 Кб
Скачать

Хід роботи

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

  • Створіть нову робочу книгу, дайте їй назву „Лабораторна робота 7”

  • На Листі1 створіть таблицю та отформатуйте її згідно зразку:

Примітка: Оскільки функція Автозаповнення у OpenOffice Calc не підтримує українську мову, будемо заповнювати таблицю використовуючи російські назви

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

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

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

  • З'явиться діалогове вікно Макрос, в якому можна зберегти і виконати макрос

Щоб зберегти макрос у файлі лабораторної роботи, спочатку у списку Сохранить макрос в виберіть об'єкт Лабораторна робота 7. У бібліотеці Standart створіть новий модуль натисканням на кнопку Новый модуль. Дайте йому назву MyModule. Дайте макросу назву Zadanie1 та натисніть кнопку Записать.

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

  • Встановіть курсор у клітинку A1 і виконайте команду Сервис – Макросы – Выполнить макрос

  • У вікні «Выбор макроса» знайдіть ваш макрос та натисніть кнопку «Выполнить»

  • Збережіть документ

Як ви бачите, в результаті виконання вправи макрос вийшов дуже обмежений. Він виконує автозаповнення тільки в колонці A і тільки до десяти. Для того, щоб зробити макрос універсальним, необхідно скористатися вбудованим редактором розробки макросів і вручну додати йому необхідні можливості. У OpenOffice.org є можливість розробляти макроси на різних мовах програмування, але в даній роботі ми скористаємося OpenOffice.org Basic (Бейсік).

  • Виконайте команди меню Сервис – Макросы - Управление макросами - OpenOffice.org Basic

  • У діалоговому вікні Макрос виберіть макрос «Zadanie1» та натисніть кнопку Редактировать

  • У вікні редактора знайдіть процедуру Sub Zadanie1. Саме ця процедура запускається на виконання, коли ви запускаєте макрос

  • Відредагуйте процедуру приблизно як в лістингу (коментарі писати не обов'язково):

Універсальний макрос автозаповнення

sub Zadanie1

rem ----------------------------------------------------------------------

rem Блок оголошення змінних

dim document as object ' Посилання на об'єкт документ

dim dispatcher as object ' посилання на об'єкт сервіс UNO

dim Selection As object ' Посилання на виділену область у документі

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

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

dim StartCell As String ' Текстове посилання на поточну клітинку

dim EndCell As String ' Текстове посилання на останню клітинку

rem ----------------------------------------------------------------------

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

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

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

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

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

CurRowNumber= Selection.CellAddress.Row

' Ім’я поточного стовпця

CurColumnName= Selection.Columns.ElementNames(0)

' Методом конкатенації формуємо адреси клітинок

StartCell= "$" & CurColumnName & "$" & CStr(CurRowNumber+1) 'Початкова клітинка

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

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

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

'адреса останньої клітинки

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

rem ----------------------------------------------------------------------

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())

rem ----------------------------------------------------------------------

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 Закоментуємо зайві інструкції ----------------------------------

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

'args3(0).Name = "ToPoint"

'args3(0).Value = "$A$1:$A$10"

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

end sub

  • Збережіть отриманий макрос командою Файл - Сохранить, в редакторі OpenOffice Basic

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

  • У діалоговому вікні у полі Категория виділіть модуль, в якому розташований макрос «Zadanie1», в полі Функция виділіть макрос, після чого в полі Комбинация клавиш виберіть вільну комбінацію і натисніть кнопку «Заменить»

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

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

  • Самостійно розгляньте діалог налаштування (Сервис - Настройки), назначте макрос «Zadanie1» на панель інструментів і створіть нове меню Макросы, до якого також назначте макрос. Примітка: Використовуйте довідку OpenOffice.org. для виконання завдання

  • Збережіть документ

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]