Задание 2

1. Запустите редактор макросов командой Сервис => Макросы => Управление макросами => OpenOffice.org Бэйсик;

2.

 
 

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

Рис. 6 Выбор макроса для редактирования

 

3.

 
 

В окне редактора найдите процедуру Sub Zadanie1(Рис. 7.), именно эта процедура запускается на выполнение, когда вы запускаете макрос;

Рис. 7. Окно редактора макроса

 

Отредактируйте процедуру примерно как в листинге 2.2.1 (комментарии писать не обязательно)

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

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

4. Сохраните полученный макрос командой Файл => Сохранить,в редакторе OpenOffice Basic;

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

6.

 
 

В открывшемся диалоге в поле Категория выделите модуль, в котором расположен макрос «Zadanie1», в поле Функция выделите макрос, после чего в поле Комбинация клавиш выберите свободную комбинацию и нажмите кнопку «Заменить» (Рис.8.);

Рис. 8. Назначение макросу комбинации клавиш

 

7. Нажмите кнопку ОК;

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

9.

 
 

Сохраните документ.

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