Опубликован: 16.05.2007 | Уровень: для всех | Доступ: платный
Лекция 17:

Первые шаги в работе с макросами

< Лекция 16 || Лекция 17: 12345 || Лекция 18 >

Шаг 2. Создание модуля

Макросы сохраняются в модуле, таким образом следующим шагом должно быть создание модуля в только что созданной библиотеке. Предполагая, что диалог Управление макросами ( рис. 17.3) все еще открыт, выберем вкладку Модули ( рис. 17.6).

TestLibrary содержит один модуль по имени Module1.

Рис. 17.6. TestLibrary содержит один модуль по имени Module1.

Недавно созданная библиотека TestLibrary теперь отображается в диалоге Управление макросами. Выберите TestLibrary или любой модуль, содержащийся в этой библиотеке, и затем нажмите кнопку Новый модуль для создания нового модуля

Новый модуль

Рис. 17.7. Новый модуль
. Имя по умолчанию Module1; выберите более описательное название для модуля и нажмите OK, чтобы создать его.

СОВЕТ Используйте описательные названия модуля, чтобы избежать беспорядка. Это важно при перемещении между модулями.

Распространенная ошибка состоит в выборе неправильного контейнера библиотек в диалогах Макрос или Управление макросами. Самая распространенная ошибка состоит в выборе библиотеки или модуля в прикладном контейнере (Мои макросы или Мои диалоги), а не в определенном документе. Найдите название документа в списке. Название документа определено полем Заголовок, установленным в диалоге Свойства документа. Используйте Файл > Свойства для открытия диалога Свойства документа. Заголовок задан на вкладке Описание. Если Заголовок не задан, вместо него используется имя файла.

Примечание Два документа с одинаковым заголовком в диалоге Свойства документа используют одинаковые имена в диалоге Макрос, в диалоге Управление макросами и в заголовке окна. Это запутывает, так пробуйте избежать этого.

Шаг 3. Ввод вашего первого макроса

Если диалоговое окно Управление макросами все еще открыто, Вы можете выделить недавно созданный модуль и нажать кнопку Редактировать. Это откроет Basic IDE ( рис. 17.9). Другой выбор состоит в использовании диалога Макрос. Если диалог Управление макросами открыт, нажмите кнопку Закрыть для открытия диалога Макрос. Если диалог Управление макросами не открыт, выполните Сервис > Макрос > Управление макросами > OpenOffice.org Basic для открытия диалога Макрос ( рис. 17.8).

Вот описание кнопок в диалоге Макрос:

  • Кнопка Выполнить выполняет выбранный макрос. Макрос выбран в правом списке, и его название также появляется в верхнем левом поле ввода, названном "Название макроса".
    Выбор определенного макроса

    Рис. 17.8. Выбор определенного макроса
  • Кнопка Закрыть закрывает диалог Макрос.
  • Кнопка Назначить связывает макрос с определенным событием. Назначение макросов событиям обсуждается далее.
  • Кнопка Редактировать открывает IDE для редактирования выбранного макроса.
  • Кнопка Удалить удаляет выбранный макрос. Эта кнопка присутствует, только если модуль выбран. Если библиотека или документ выбраны в списке "Макрос из", кнопка Удалить заменяется на Создать. Кнопка Создать создает новый макрос в выбранной библиотеке.
  • Кнопка Управление открывает диалог Управление макросами.
  • Кнопка Справка открывает систему помощи.

Назначение диалога Макрос состоит в том, чтобы работать с отдельным макросом. Выберите MyFirstModule и нажмите кнопку Редактировать для открытия Basic IDE ( рис. 17.9). Одна пустая подпрограмма, Main, автоматически создается при создании модуля. IDE, показанная на рис. 17.9, была открыта нажатием на MyFirstModule и затем нажатием на кнопку Редактировать. Введите код, приведенный в пример 1..

пример 1. Программа "Hello World" найденная в файлах исходного текста этой главы на веб-сайте Hentzenwerke.

Sub main
  HelloWorld2()
End Sub
Sub HelloWorld1
  Print "Hello World One"
End Sub
Sub HelloWorld2
  Print "Hello World Two"
End Sub
Листинг 1. Программа "Hello World" найденная в файлах исходного текста этой главы на веб-сайте Hentzenwerke
Разработка макроса в IDE

увеличить изображение
Рис. 17.9. Разработка макроса в IDE

IDE содержит панели инструментов Макрос и Стандарт, обозначенные на рис. 17.9. (Большинство значков на панели инструментов Макрос описаны в разделе "Интегрированная среда разработки") Остановите курсор Вашей мыши на каждом из значков панели инструментов на пять секунд и прочтите появляющийся текст; это дает подсказку о назначении данного значка.

Нажмите на значок Компиляция, чтобы найти синтаксические ошибки, такие как отсутствие кавычек

Рис. 17.10. Нажмите на значок Компиляция, чтобы найти синтаксические ошибки, такие как отсутствие кавычек

Нажмите на значок Компилировать , чтобы проверить макрос на наличие синтаксических ошибок. Сообщение не отображается, если ошибки не найдены ( рис. 17.10). Нажатие на значок Компиляция осуществляет выполнение компиляции только для текущего модуля.

Измените код в пример 1. для демонстрации ошибки. Удалите вторую кавычку из утверждения Print в HelloWorld1 ( рис. 17.10). После чего нажмите значок Компиляция. Диалог показывает важное сообщение об ошибке для первой ошибки, с которой сталкиваются. Сообщение об ошибке на рис. 17.10 указывает, что ожидалась кавычка, но не была найдена. Первый символ кавычки выделен, и красная стрелка отмечает строку с ошибкой. Нажмите кнопку OK для закрытия диалога сообщения об ошибке, исправьте строку, добавив кавычку в конце, и затем скомпилируйте код заново.

Нажмите на значок Выполнить для запуска первой подпрограммы в текущем модуле. Нет необходимости нажимать сначала на значок Компиляция, потому что нажатие на значок Выполнить автоматически компилирует каждый модуль в текущей библиотеке. Нажатие на значок Выполнить запускает только первую подпрограмму в модуле. Для пример 1., значок Выполнить запускает первую подпрограмму, которая называется "main". Подпрограмма main вызывает подпрограмму HelloWorld2, отображающую диалог показанный на рис. 17.11. Нажмите OK для закрытия диалога или нажмите Отмена для остановки макроса.

Нажмите OK для закрытия диалога.

Рис. 17.11. Нажмите OK для закрытия диалога.

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

  • Поместить HelloWorld1 первой в модуле и нажать на значок Выполнить.
  • Изменить подпрограмму main для вызова HelloWorld1, а не HelloWorld2.
  • Использовать диалог Макрос (показанный на рис. 17.8) для запуска любой подпрограммы в модуле.
  • Добавить кнопку в Ваш документ OpenOffice.org, которая вызывает HelloWorld1. Этот метод обсуждается далее.
  • Назначить макрос на нажатие клавиши. Чтобы сделать это, выполните Сервис > Настройка для открытия диалога Настройка, и перейдите на вкладку Клавиатура. Библиотеки макросов находятся в нижней части списка Категории. Вы можете также найти их, нажав Сервис > Макрос > Управление макросами > OpenOffice.org Basic, выбрать определенный макрос, и затем нажать кнопку Назначить, чтобы открыть окно Настройка. Различные вкладки этого диалога позволяют Вам назначить макрос для выполнения как пункт меню, от клавиши клавиатуры, значка на панели инструментов или системного события.
  • Добавьте значок на панель инструментов, который вызывает HelloWorld1.

Чтобы использовать диалоговое окно Макрос для запуска любой подпрограммы в модуле, выполните следующие шаги:

  1. Выполните Сервис > Макрос > Управление макросами > OpenOffice.org Basic для открытия диалога Макрос ( рис. 17.8).
  2. Найдите документ, который содержит модуль в списке "Макрос из".
  3. Выполните двойной щелчок на библиотеке для отображения содержащихся в ней модулей.
  4. Выбрать модуль, чтобы отобразить содержащиеся подпрограммы и функции в списке "Существующие макросы: <имя выбранного модуля>".
  5. Выберите требуемую для запуска подпрограмму или функцию — например, HelloWorld1.
  6. Нажмите кнопку Выполнить для запуска подпрограммы или функции.
СОВЕТ При разработке программы поместите ее в начало модуля, так Вы сможете быстро выполнить ее, нажав на значок Выполнить. Другое решение состоит в том, чтобы использовать первую подпрограмму для вызова другой, как показано в пример 1.. Это быстрее, чем использование диалога Макрос.

Код, используемый в этой главе, доступен в текстовом документе OpenOffice.org по имени SC01.sxw. Загрузите и откройте этот документ. Когда документ, содержащий макроопределение открывается, OpenOffice.org выдает предупреждение (смотри рис. 17.12). Это предупреждение помогает Вам избежать случайного запуска макроса, содержащего вирус. Хотя Вы можете вручную запускать любой макрос используя диалог Макрос, кнопки с привязанными макросами в документе не будут функционировать. Нажмите Включить макросы, чтобы полностью разрешить применение кнопок с макросами, добавленными в SC01.sxw.

Вы только открываете OpenOffice.org документ, который содержит макрос.

Рис. 17.12. Вы только открываете OpenOffice.org документ, который содержит макрос.
СОВЕТ Вы можете сконфигурировать документ для автоматического запуска макроса при загрузке документа. Это один из методов распространения макровирусов при использовании документов. Если Вы не ожидаете, что документ содержит макрос, Вы должны всегда нажимать Отключить макросы. Это препятствует автоматическому запуску любого макроса при загрузке документа.

SC01.sxw содержит три кнопки: Main, Hello World 1 и Hello World 2. Каждая кнопка сформирована для запуска соответствующей подпрограммы, когда на кнопку нажимают. Кнопки ничего не делают, если Вы нажимаете Отключить макросы при загрузке документа.

Возможно добавить каталог в список "безопасных путей". Если Вы уверены, что каталог содержит документы, которым Вы можете полностью доверять, что они не содержат макровирусы, Вы можете добавить путь к данному каталогу в список безопасных путей. Используйте Сервис > Параметры > OpenOffice.org > Безопасность > Безопасность макросов > Доверенные источники и добавьте соответствующие месторасположения файлов, которым доверяете. Все документы, загруженные из доверенных источников, будут считаться безопасными, и макросы всегда будут запускаться.

< Лекция 16 || Лекция 17: 12345 || Лекция 18 >
юрий лылов
юрий лылов

более туманного и запутанного объяснения макросов трудно наверно себе представить , похоже препод сам плавает во всем этом а вопросов поэтому нет ибо и отвечать будет некому

Павел Кекконен
Павел Кекконен
Галина Иванова
Галина Иванова
Россия
Лариса Деева
Лариса Деева
Россия, Красноярск