17. Лекция: Первые шаги в работе с макросами icon

17. Лекция: Первые шаги в работе с макросами



Название17. Лекция: Первые шаги в работе с макросами
Дата конвертации30.11.2013
Размер324.94 Kb.
ТипЛекция
скачать >>>
1. /17. Первые шаги в работе с макросами.doc17. Лекция: Первые шаги в работе с макросами

17. Лекция: Первые шаги в работе с макросами

Данная лекция посвящена вопросам использования макросов для ваших объектов ОО. Подробно рассматривается создание макросов, а также освещаются особенности хранения макросов в библиотеках приложений, управления макросами. Кроме того, уделено внимание использованию т.н. точек останова



Содержание

  • Язык макросов OpenOffice.org

  • Хранение макросов в библиотеке документов

    • Шаг 1. Создание библиотеки

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

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

  • Хранение макроса в библиотеке приложений

  • Интегрированная среда разработки

    • Использование точек останова

  • Управление библиотеками

    • Как сохраняются библиотеки

    • Библиотеки приложения

    • Библиотеки документа

    • Использование диалога Управление макросами

  • Переименование модулей и библиотек

  • Добавление библиотек

  • Заключение

Язык макросов OpenOffice.org


Макрос – сохраненная последовательность команд или нажатий клавиши, которые предназначены для использования в будущем. Пример простого макроса – "вывод" вашего адреса. Макросы поддерживают команды, которые позволяют выполнять различные функции, такие как принятие решений (например, если баланс меньше чем ноль, отобразить его красным цветом; в противном случае – черным), обработка (если баланс больше чем ноль, вычесть из него 10), и даже взаимодействие с человеком (запросить у пользователя число). Некоторые из этих команд основаны на языке программирования BASIC. (BASIC – акроним для Beginner&s All-purpose Symbolic Instruction Code.) Обычно макрос связывают с нажатием клавиши или значком на панели инструментов так, чтобы его можно было быстро выполнить.

В OpenOffice.org язык макросов очень гибок и позволяет автоматизировать различные простые и сложные задачи. Написание макросов и изучение внутренней работы OpenOffice.org может быть очень занимательным, но это не всегда лучший путь. Макросы особенно полезны, когда Вы должны выполнить какую-либо задачу одним и тем же путем множество раз, или когда Вы хотите нажать одну кнопку, чтобы сделать что-то, что обычно выполняется за несколько шагов. Время от времени Вы можете написать макрос, который делает что-то, чего Вы не можете выполнить иным способом в OpenOffice.org, но в этом случае Вы должны убедиться, что OOo не может сделать этого. Например, общий запрос к какому-нибудь списку адресатов OpenOffice.org для удаления пустых абзацев. Подобные функциональные возможности предоставляет Автоформат (выполните Сервис > Автозамена > Вкладка Параметры ). Также возможно использование регулярных выражений для поиска и замены пустых мест. Есть время и цель для создания макросов и время для других решений. Эта глава подготовит Вас со временем и Вы будете понимать, когда макрос – лучшее решение.

Примечание

OpenOffice.org сокращается как OOo. "OpenOffice.org Basic" поэтому сокращается как "OOo Basic".

OpenOffice.org язык макросов основан на языке программирования Basic. OOo Basic выполняет одну строку одновременно. Поскольку обычно Вы нуждаетесь в более чем одной строке, чтобы сделать что-нибудь, Вы будете писать программы – также известные как процедуры – которые состоят из множества строк, и когда исполняются, выполняют определенные действия. Например, Вы могли бы написать программу, которая удаляет верхний колонтитул из файла и вставляет предпочтительный для Вас верхний колонтитул. В OpenOffice.org программы, которые логически связаны, сохраняются в модуле. Например, модуль может содержать программы для нахождения общих ошибок, требующих редактирования. Логически связанные модули сохраняются в библиотеках, а библиотеки – в контейнерах библиотек. OpenOffice.org приложение может вести себя как контейнер библиотеки, а может как любой документ OOo. Просто запомните, что приложение OpenOffice.org и любой OpenOffice.org документ может содержать библиотеки, модули и макросы.

Примечание

Диалог - окно, которое появляется на экране, обычно требует ввода или представления информации. Диалоги обычно исчезают после того, как требуемый ввод выполнен. Созданные пользователем диалоги сохраняются в библиотеках диалогов тем же самым образом, каким макросы сохраняются в библиотеках макросов. Каждая библиотека может содержать множество диалогов. Контейнеры библиотеки могут хранить и библиотеки макросов, и библиотеки диалогов.

Хранение макросов в библиотеке документов


Каждый документ OpenOffice.org является контейнером библиотек и способен содержать макросы и диалоги. Когда документ содержит макросы, которые он использует, обладание документом подразумевает обладание макросом. Это удобный метод распространения и хранения. Пошлите документ другому человеку или измените его размещение и макросы будут доступны и пригодны к употреблению.

Традиционный метод представления языка программирования, написание программы тем или иным образом выводящей сообщение "Hello World". Целые веб-сайты существуют с единственной целью – показать программы "Hello World" на стольких многих различных языках программирования, насколько. Не будем нарушать традиций, и первый показанный макрос будет вариацией на тему "Hello World".

Шаг 1. Создание библиотеки


Все документы OOo, независимо от типа документа, могут содержать макросы. Чтобы добавить макрос к любому документу OOo, документ должен быть открыт для редактирования. Сначала, создадим новый текстовый документ, который будет называться "Безымянный1" – предполагая, что никакой другой еще неназванный документ не является открытым в настоящее время. Когда документ создан, OpenOffice.org создает пустую библиотеку по имени Standard. Библиотека Standard, однако, остается пустой, пока не создан вручную новый модуль. Используйте диалоговое окно Макрос OpenOffice.org, чтобы организовать библиотеки и модули: выполните Сервис > Макросы > Управление макросами > OpenOffice.org Basic (рис. 17.1).




Рис. 17.1.  Использование диалога Макросы для создания нового макроса и организации библиотеки

Список "Макрос из" отображает доступные контейнеры библиотек; он включает каждый открытый документ, ваши личные макросы, и макросы, распространяемые с OOo. Ваши личные макросы, отображаемые как "Мои макросы" на 17.1, обычно сохраняются в вашем личном каталоге пользователя. "Макросы OpenOffice.org" обычно сохраняются отдельно в каталоге с программными файлами OOo. Хотя ваш личный макрос сохранен и отображается отдельно от макросов OOo, оба, являются частью библиотеки прикладного уровня. Контейнеры библиотеки документа перечислены с использованием заданного имени документа. Большинство контейнеров библиотек уже имеет библиотеку по имени Standard. Выполните двойной щелчок на значке контейнера библиотеки для отображения содержащихся библиотек. Выполните двойной щелчок на библиотеке для отображения содержащихся модулей.

Примечание

До версии 2.0, OOo отображал "Мои макросы" и "Макросы OpenOffice.org" в одном списке. Новые диалоги являются более интуитивными, сохраняя очень подобные впечатление и ощущение. Поддержка редактирования и выполнения макросов на языках, кроме OOo Basic, также была добавлена; смотри Сервис > Макросы > Управление макросами > JavaScript , например.

Библиотека Standard для безымянного документа автоматически создается при создании нового документа. Документ в настоящее время не содержит никаких модулей – помните, что макросы сохраняются в модулях. Хотя Вы могли нажать на кнопку Создать для создания нового модуля, не делайте этого! Пункт этого раздела должен создать новую библиотеку.

СОВЕТ

Не храните ваши макросы в библиотеке Standard. Создайте новую библиотеку с описательным названием и храните там ваши макросы. Когда библиотека добавляется, она может перезаписать существующую библиотеку с тем же самым именем. Если все ваши библиотеки называют Standard, это препятствует Вам добавлять ваши библиотеки в другие контейнеры библиотек.

Нажмите на кнопку Управление, чтобы открыть диалог Управление макросами (17.2). Как и в диалоговом окне Макрос, здесь перечислены все контейнеры библиотек. На 17.2 библиотека Standard подсвечена в документе "Безымянный1"; прокрутите список вниз, чтобы найти "Безымянный1", если требуется. Диалог Управление макросами содержит несколько закладок и текущая закладка Модули. Поскольку название подразумевает, закладка Модули имеет дело с модулями. Вот описание пунктов этого диалога:

  • Кнопка Новый модуль создает новый модуль в выбранной библиотеке.

  • Кнопка Удалить удаляет выбранный в настоящее время модуль; не доступна, если модуль не выбран.

  • Кнопка Редактировать открывает выбранный в настоящее время модуль для редактирования в IDE (Integrated Development Environment – Интегрированная среда разработки) не доступна, если модуль не выбран.

  • Кнопка Закрыть закрывает диалог Управление макросами.




Рис. 17.2.  Использование диалога Управление макросами для управления модулями

Цель этого раздела состоит в том, чтобы создать библиотеку названную осмысленно, которая содержится в документе "Безымянный1". Перейдите на вкладку Библиотеки, чтобы иметь дело с библиотеками (рис. 17.3).




Рис. 17.3.  Использование диалога Управление макросами для управления библиотеками

Когда эта часть диалога отображается, в списке Приложение/Документ выбран контейнер Мои макросы и диалоги. Выберите документ "Безымянный1" так, чтобы изменения проводились в безымянном документе. Кнопки, показанные на закладке Библиотеки, затрагивают библиотеки, а не модули. Вот их описание:




Рис. 17.4.  Выберите значащее наименование для библиотеки

Нажмите кнопку Новая библиотека для создания новой библиотеки (рис. 17.4). Хотя название по умолчанию "Library1", лучше выбрать значащее название, типа "MyFirstLibrary" или "TestLibrary". Нажмите OK, чтобы создать библиотеку.

Диалоговое окно Управление макросами теперь содержит вновь созданную библиотеку в списке Библиотек (рис. 17.5).




Рис. 17.5.  Документ теперь содержит библиотеку по имени TestLibrary

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


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




Рис. 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 (html, txt)




Рис. 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 для закрытия диалога или нажмите Отмена для остановки макроса.




Рис. 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.




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

СОВЕТ

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

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

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

Хранение макроса в библиотеке приложений


Приложение OpenOffice.org само является контейнером библиотек. Это превосходное место для хранения кода и диалогов, общих для многих документов. Контроль версии легче, если макросы сохранены в одном месте. Если пять документов, все содержат один и тот же макрос, мало того, что область памяти потрачена впустую, но если макрос изменяется, Вы должны изменить макрос в пяти различных документах.

Для хранения макросов в библиотеках приложения используйте те же самые методы, которые используются для документов. Контейнер уровня приложения использует два названия, "Мои макросы" и "Макросы OpenOffice.org". Приложение OOo включает множество библиотек, сохраненных как "Макросы OpenOffice.org". Используйте диалог Управление макросами на рис. 17.3для добавления новых библиотек.

Внимание

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

Каждая библиотека приложения сохраняется в своем собственном каталоге. Чтобы определить, где OpenOffice.org хранит библиотеки приложения, выберите Сервис > Параметры. В диалоге Параметры раскройте ветку OpenOffice.org в дерево меню и выберите Меню. Объект Basic показывает местоположение внешних библиотек.

Перед установкой новой версии OpenOffice.org сделайте копию всех библиотек прикладного уровня. Если Вы устанавливаете OOo в то же самое место, будет перезаписан файл конфигурации, который говорит OOo, где располагаются ваши библиотеки прикладного уровня. Библиотеки - обычно все еще там, но OOo не знает о них. Для восстановления потерянных библиотек, независимо от того, где они расположены, используют вкладку Библиотеки диалога Управление макросами (рис. 17.3). Проверьте, что "Мои макросы" выбраны в списке Приложение/Документ, и затем нажмите кнопку Добавить . Перейдите в каталог, содержащий библиотеку, которую Вы хотите добавить. Выберите файл script.xlb и нажмите Открыть . Сделайте это для каждой библиотеки, которую Вы хотите восстановить. Этот метод может также использоваться для добавления библиотек, сохраненных в документах.

СОВЕТ

Не используйте библиотеку Standard, если Вы думаете, что Вы захотите когда-либо добавить вашу библиотеку в другое место. Храните все ваши модули, которые Вы создаете, в библиотеках со значащими названиями. Библиотека Standard является особенной, и Вы не можете удалить ее или перезаписать.

Для практики добавьте макрос в библиотеку прикладного уровня, откройте диалог Управление макросами. Проверьте, что контейнер библиотек "Мои макросы" – текущий контейнер. Нажмите кнопку Создать для добавления нового модуля в библиотеку прикладного уровня. Для добавления библиотеки перейдите на вкладку Библиотеки. Проверьте, что "Мои макросы" выбраны в списке Приложение/ Документ, и затем нажмите кнопку Создать .

Библиотеки, сохраненные в документах, могут быть добавлены в контейнер библиотеки приложения. Когда библиотека добавляется, она перезаписывает существующую библиотеку с тем же самым названием. Поэтому хорошая идея – создать значащее имя для библиотеки, содержащей макросы. Это ограничивает проблемы, возникающие при перемещении макросов между контейнерами библиотеки.

Интегрированная среда разработки


Интегрированная среда разработки (IDE) – ряд программных инструментов, используемых для облегчения создания программного обеспечения. OpenOffice.org включает очень развитую IDE с инструментами, которые осуществляют выполнение, редактирование и поиск ошибок в Ваших макросах. Требуется время, чтобы ознакомиться с ее возможностями. Рис. 17.9 показывает IDE. Центральная область, где содержится код макроса, – окно редактирования. Многие возможности, такие как Останов, Контрольные точки, Пошаговое выполнение и панель контрольных значений, служат простыми, но эффективными средствами для отладки кода макроса.

Этот раздел дает краткий обзор стандартных функций IDE. Не удивляйтесь, если Вы полностью не понимаете, как использовать их всех в этом месте. Вы познакомитесь с этими функциями, поскольку Вы будете работать по примерам. Первый набор функций используется для отладки, а описанные в конце этого раздела поддерживают формирование и управление объектами в ваших макропрограммах, библиотеках и документах. Ниже приведены описания значков.

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

Примечание

Процесс компиляции переводит макроопределение OOo на машинный язык, который компьютер может понять и выполнить.

Значок Выполнить компилирует все модули в текущей библиотеке и затем выполняет первую подпрограмму или функцию в текущем модуле. Это отличается от действия значка Компиляция, который компилирует только текущий модуль.

Значок Остановить макрос останавливает выполнение макроса. Когда Вы нажимаете на этот значок, Вы не можете продолжить выполнение макроса; Вы должны запустить его снова, с начала. Значок Остановить макрос доступен, только когда макрос выполняется. Когда доступен, значок Остановить напоминает транспортный знак остановки.

Значок Шаг без захода выполняет текущее утверждение. Если макрос еще не выполняется, первая подпрограмма в модуле запускается и отмечается как текущее утверждение. Текущее утверждение имеет стрелку в колонке Контрольной точки, и курсор перемещается в эту строку. Если, однако, макрос уже выполняется, выполняется текущее утверждение и следующее выполняемое утверждение помечается как текущее. Значок Шаг без захода рассматривает вызовы других подпрограмм как одно утверждение и не осуществляет пошаговое выполнение внутри них. Заметьте, что значок имеет стрелку, которая огибает фигурные скобки, представляющие вызов подпрограммы или функции.

Значок Шаг с заходом выполняет текущее утверждение. Поведение такое же, как у значка Шаг без захода, за исключением того, что подпрограммы и функции не рассматривают как одно утверждение. Каждое утверждение в вызываемой подпрограмме считается утверждением. Подпрограммы и функции выполняются пошагово внутри, отмечая определение вызванной подпрограммы или функции как текущее утверждение. Заметьте, что значок содержит стрелку, которая направлена в фигурные скобки, представляющие вызов подпрограммы или функции.

Значок Выход на верхний уровень выполняет макрос до конца текущей подпрограммы и затем выходит из нее. Эффект тот же самый, как повторяющееся нажатие на значок Шаг с заходом, пока последнее утверждение в текущей подпрограмме (End Sub или End Function) не станет текущим, и затем нажатие Шаг с заходом еще раз для выхода из подпрограммы. Утверждение после вызова текущей подпрограммы становится текущим утверждением. Если Вы случайно нажмете Шаг с заходом вместо Шаг без захода, нажмите один раз значок Выход на верхний уровень. Заметьте, что значок содержит стрелку, которая покидает фигурные скобки, представляющие вызов подпрограммы или функции.

Значок Точка останова устанавливает контрольную точку в утверждении, содержащем курсор. Красный признак останова отмечает строку в столбце точек останова. Двойной щелчок по столбцу точек останова устанавливает точку останова в этом утверждении. Щелчок правой кнопкой мыши на точке останова в столбце точек останова активирует или деактивирует ее.

Значок Управление точками останова открывает диалог Точки останова (рис. 17.13).




Рис. 17.13.  Ручное редактирование и формирование точек останова

Значок Включить инспектор предполагает, что текущее слово (слово, в котором находится курсор при нажатии на значок) – переменная и добавляет имя этой переменной в панель Инспектора.

Значок Каталог объектов открывает окно Объекты (рис. 17.14), где Вы можете просмотреть все доступные в настоящее время контейнеры библиотек. Используйте это окно, чтобы видеть, какие библиотеки, модули и подпрограммы являются доступными. Выполните двойной щелчок мышью на подпрограмме для загрузки ее в IDE. Функциональные возможности подобны Навигатору в документе OOo Writer. Вы должны сохранить файл прежде, чем его модули будут доступны в Каталоге Объектов.

СОВЕТ

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

Значок Выбрать макрос загружает диалог Макрос. Выбирая Сервис > Макрос > Управление макросами > OpenOffice.org Basic Вы также загружаете диалог Макрос.

Значок Выбрать модуль загружает диалог Управление макросами. Этот значок имеет тот же самый эффект, что и нажатие на кнопку Управление в диалоге Макрос (рис. 17.2 и рис. 17.3).

Выберите или поместите курсор непосредственно слева от круглой скобки, затем нажмите значок Найти скобку для поиска парной круглой скобки. Когда IDE находит парную круглую скобку, она выделяет парные круглые скобки и все, что они охватывают.




Рис. 17.14.  Вы можете просмотреть доступные библиотеки и модули в окне Объекты

Чтобы открыть окно Элементы управления, нажмите значок Вставить элементы управления при редактировании диалога. (Для получения дополнительной информации о элементах управления (см. лекция 17).

Чтобы создать диалог для редактирования, нажмите значок Выбрать модуль для загрузки диалога Управление макросами. Перейдите на вкладку Диалоги и нажмите кнопку Новый диалог для создания нового диалога. Лекция 17 OpenOffice.org Macros Explained для получения дополнительной информации об использовании и создании диалогов в макросах.

Последние два значка, Вставить код Basic и Сохранить Basic , используются для вставки в текущий модуль текста, сохраненного во внешний исходный файл, и для сохранения текущего модуля во внешний текстовый файл. Это прекрасный способ создать резервную копию макроса или создать текстовый файл, который можно легко послать другому человеку. Это отличается от значка Сохранить , который используется для сохранения всей библиотеки или документа, содержащего модуль.

Использование точек останова


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

Значок Точка останова устанавливает контрольную точку в утверждении, содержащем курсор. Красный знак останова отмечает строку в колонке точки останова. Двойной щелчок в колонке точки останова также устанавливает точку останова в этом утверждении. Щелчок правой кнопкой мыши на точке останова в колонке точки останова активирует и деактивирует ее.

Значок Управление точками останова загружает диалог Точки останова (рис. 17.13). Все активные точки останова в текущем диалоге IDE появляются в нижнем списке. Для добавления точки останова введите номер строки в поле ввода сверху и затем нажмите Создать . Для удаления точки останова выделите точку останова в списке и нажмите кнопку Удалить . Очистка флажка Вкл./Выкл . запрещает выделенную точку останова без ее удаления. Поле ввода Пропусков указывает количество раз, которое контрольная точка должна быть пройдена прежде, чем она будет считаться активной. Если количество пропусков четыре (4), то в четвертый раз, когда утверждение, содержащее контрольную точку, будет выполняться, произойдет останов выполнения. Это чрезвычайно полезно, когда часть макроса не вызывает ошибок, пока ее не вызвали многократно.

Есть две вещи, которые заставляют игнорировать точку останова: не нулевое количество проходов и явная маркировка точки останова как "не активная" в диалоге Точки останова. Каждая точка останова имеет счетчик проходов, который является декрементным к нулю, когда она достигнута. Если результат декремента - ноль, контрольная точка становится активной и остается активной, потому что счетчик проходов остается в дальнейшем в нуле. Счетчик проходов не восстанавливается к его исходному значению, когда макрос заканчивается или повторно запускается.

Легко контролировать значение переменных из IDE во время выполнения программы. Поместите курсор рядом или в любое слово в окне редактирования и нажмите значок Включить инспектор для добавления слова в панель Инспектора. Панель инспектора отображает значения переменных, доступных в настоящее время. Текст "<Не доступно>" отображается для недоступных переменных. Другой способ добавить переменную в панель инспектора – ввести имя в поле Контрольное значение и нажать Enter . Для удаления имени из панели инспектора выделите его или введите имя в поле Контрольное значение и нажмите значок Удалить контрольное значение . Нажатие на имя в панели инспектора помещает имя в поле Контрольное значение. Возможности окна инспектора были расширены в OOo 2.0. Например, Вы можете теперь наблюдать массив или объектную переменную; это очень впечатляет.

Примечание

Переменная, которая находится в пределах видимости, в настоящее время доступна или видима. Например, если переменная "j" определена внутри HelloWorld1, она не видима (недоступна) внутри HelloWorld2. Это обсуждается позже.

Управление библиотеками


Этот раздел имеет дело с созданием, перемещением и переименованием библиотек и модулей. Рассматривая управление библиотеками, важно сначала понять некоторые основы, которые уже обсуждались:

  • Контейнер библиотек содержит ноль или более библиотек.

  • Каждая библиотека содержит ноль или более модулей и диалогов.

  • Каждый модуль содержит ноль или более макросов.

  • Приложение – контейнер библиотек, называемых "Мои макросы" и "Макросы OpenOffice.org". Библиотеки, сохраненные в приложении, глобально доступны для всех макросов.

  • Каждый документ – контейнер библиотек.

  • Библиотека по имени Standard является особенной; она всегда существует и не может быть перезаписана. Я не советую использовать библиотеку Standard.

  • Всегда давайте значащие имена библиотекам и модулям, которые Вы создаете. Например, Library1 и Module4 не значащие названия, а AXONInvoiceForm1 может быть более описательным и полезным.

Как сохраняются библиотеки


Библиотеки OpenOffice.org сохраняются как файлы XML, которые являются легко редактируемыми при использовании любого текстового редактора. Другими словами, легко случайно повредить ваши файлы. Ручное редактирование ваших внешних библиотек вообще считается глупым, я имел по крайней мере один случай, где это требовалось, потому что OOo был неспособен загрузить модуль, который содержал синтаксическую ошибку.

СОВЕТ

Ручное редактирование файлов OOo лучше всего оставить продвинутым пользователям. Начинающий пользователь может захотеть бегло просмотреть этот материал или поскорее перейти к следующему разделу.

Библиотеки приложения


Каждая библиотека приложения сохранена в одном каталоге, а каждый модуль и диалог содержатся в одном файле. Диалог Параметры ( Сервис > Параметры > OpenOffice.org > Пути ) содержит запись, которая указывает где располагаются библиотеки. Глобальные библиотеки, которые включены в OpenOffice.org, сохраняются в отделенном основном каталоге под каталогом, в котором установлен OOo. Например:

C:\Program Files\OpenOffice.org 2\share\basic

/usr/local/OpenOffice.org 2/share/basic

Библиотеки, которые Вы создаете, сохраняются в различных каталогах. На моем Windows-компьютере я имею однопользовательскую установку, а на моем Linux-компьютере – многопользовательскую сетевую установку. Параметры, которые Вы задаете, устанавливая OOo, определяют местоположение ваших личных библиотек. Вот два примера:

C:\Program Files\OpenOffice.org 2\user\basic

/home/andy/OpenOffice.org 2/user/basic

Листинг разделяемых каталогов показывает один файл для каждой библиотеки приложения, включенных в OOo. Пользовательский каталог, однако, немного более интересен:

Таблица 17.1.

Элемент

Описание

dialog.xlc

XML-файл, который ссылается на каждый файл диалога, известный этому пользователю в OpenOffice.org.

script.xlc

XML-файл, который ссылается на каждый файл библиотеки, известный этому пользователю в OpenOffice.org.

Standard

Каталог, содержащий библиотеку Standard.

Pitonyak

Каталог, содержащий библиотеку с кодом, который создал Эндрю Питоньяк.

PitonyakDialogs

Каталог, содержащий библиотеку с некоторым кодом и диалогом.

Примечание

Таблица ссылается на каталоги Pitonyak и PitonyakDialogs. Библиотека Pitonyak и библиотека PitonyakDialogs не связаны; их названия подобны, потому что я испытывал недостаток в творческом потенциале и здравом смысле, когда назвал их. Не верно, что библиотека PitonyakDialogs содержит диалоги для библиотеки Pitonyak.




Рис. 17.15.  Диалоги Макрос и Управление макросами отображают доступные библиотеки и модули

Файлы dialog.xlc и script.xlc содержат ссылки на все диалоги и библиотеки, которые известны OOo. Видимые библиотеки — которые видны в диалогах Макрос и Управление макросами (рис. 17.15) — построены из файлов dialog.xlc и script.xlc. Если эти два файла будут перезаписаны, то OOo не будет знать о ваших личных библиотеках, даже если они будут существовать.

Диалог Управление макросами показывает, что библиотека PitonyakDialogs содержит один диалог; перейдите на вкладку Модули, чтобы увидеть модули кода. Ниже таблица содержит листинг файлов в каталоге PitonyakDialogs. Заметьте, что каждый модуль и диалог в библиотеке имеют соответствующий файл.

Таблица 17.2.

Файл

Описание

dialog.xlb

Ссылается на диалоги, содержавшиеся в этой библиотеке.

script.xlb

Ссылается на модули, содержавшиеся в этой библиотеке.

Module1.xba

BASIC-код в модуле по имени Module1.

SimpleObjectBrowserCode.xba

BASIC-код в модуле по имени SimpleObjectBrowserCode.

SimpleObjectBrowser.xdl

Диалог в модуле по имени SimpleObjectBrowser.

Файлы dialog.xlc и script.xlc из таблицы 17.1 ссылаются на файлы dialog.xlb и script.xlb в таблице 17.2 . Вообще, ни один из этих файлов не должен изменяться вручную, но в критическом положении они могут быть изменены вручную для исправления определенных типов ошибок.

Библиотеки документа


Документ OpenOffice.org, когда сохраняется на диск, сохраняется в стандартном формате ZIP. Любая программа, которая может просматривать и извлекать файлы ZIP, может использоваться для просмотра документа OOo — однако, некоторые программы будут требовать, чтобы Вы изменили расширение файла на ZIP.

После распаковки документа OOo Вы найдете файлы, которые содержат исходное содержание, стили и параметры настройки. Извлеченный документ также содержит три каталога. Каталог META-INF ссылается на все другие файлы, вставленные изображения, коды библиотек и диалогов. Каталог Dialogs содержит все встроенные диалоги, а каталог Basic содержит все встроенные библиотеки. Заметьте, что библиотеки, содержавшиеся в контейнере прикладного уровня сохраняются немного в другой конфигурации, чем библиотеки, содержащиеся в документе.

Как эксперимент, я взял документ, который содержал многочисленные элементы управления, вызываемые определенной библиотекой. Я разархивировал документ и затем использовал инструмент поиска текста, чтобы найти все ссылки на определенную библиотеку по имени CH03. После ручного изменения каждого вхождения текста "CH03" на "CH04" я заархивировал каталог назад в единый файл, и OOo был в состоянии прочитать и использовать файл. Я успешно изменил название содержавшейся библиотеки и каждой ссылки на элементы управления, редактируя определения XML.

Примечание

Цель этого раздела в том, что в критическом положении Вы можете вручную просмотреть XML-документ и устранить потенциальные проблемы. Это НЕ лучший способ изменить название библиотек документа.

Использование диалога Управление макросами


Диалог Управление макросами (Сервис > Макрос > Управление макросами > OpenOffice.org Basic > Управление) в состоянии удовлетворить потребности большинства пользователей по управлению модулями и библиотеками. Вкладка Модули диалога Управление макросами (рис. 17.2) обеспечивает возможность создавать и удалять модули. Диалог Управление макросами также имеет вкладку Библиотеки (рис. 17.16), используемую для создания и удаления библиотек. Вкладка Библиотеки содержит сверху поле с выпадающим списком, которое используется для выбора контейнера библиотек. Другими словами, Вы можете выбрать определенный открытый документ или библиотеку приложения.

Примечание

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




Рис. 17.16.  Использование диалога Управление макросами для создания, добавления и удаления библиотек

Переименование модулей и библиотек


Вы можете изменить название модуля или библиотеки из диалога Управление макросами. Имена модулей изменяются на вкладке Модули, а названия библиотек изменяются на вкладке Библиотеки. Когда Вы изменяете название библиотеки или модуля, это не изменяет ссылок, содержащихся в макросах. Например, если я записываю ваш номер телефона в моем Palm Pilot и Вы изменяете ваш номер телефона, мой Palm Pilot автоматически не обновляется. Итак, возможно ли вызвать макрос?

  • Когда элементы управления внедрены в документ или диалог, они часто используют макросы в качестве обработчиков событий.

  • Макросы вызывают диалоги, которые содержатся в библиотеках.

  • Макросы могут быть вызваны из программ вне OpenOffice.org.

Внимание

Когда Вы переименовываете модуль или библиотеку, ссылки на содержащиеся макросы не обновляются.

Переименование библиотеки или модуля не плохая вещь для исполнения; только помните, что объекты, которые ссылаются на модули и библиотеки, не будут обновлены. Если ничто не ссылается на ваш код, не стесняйтесь изменять имена библиотек и модулей. Вы можете переименовать библиотеки и модули с использованием диалога Управление макросами; процедура одинакова для обоих:

  1. Найти библиотеку или модуль в соответствующей вкладке диалога Управление макросами (рис. 17.15 и рис. 17.16).

  2. Выберите библиотеку или модуль.

  3. Подождите момент и нажмите на библиотеку или модуль. Курсор должен принять вид для редактирования имени библиотеки или модуля. Я нашел, что это немного чувствительнее, и иногда я должен преднамеренно выполнить одиночное нажатие несколько раз. Случайно не выполните двойной щелчок, потому что это открывает библиотеку или содержимое модуля для редактирования.

  4. Введите новое название для библиотеки или модуля и нажмите клавишу Enter .

Я имел большой документ, который содержал много кнопок. Кнопки вызывали макросы в библиотеке и я должен был изменить название библиотеки. К сожалению, после того, как я изменил название библиотеки, кнопки все еще указывали на первоначальную библиотеку, которая больше не существовала. Чувствуя себя особенно смелым, я разархивировал документ во временный каталог (помните, что файл документа OOo в действительности файл ZIP, содержащий много файлов, которые, в целом, документ). Я тогда использовал мой любимый текстовый редактор для загрузки каждого файла, и изменил старое название библиотеки на новое. Когда я закончил, я заархивировал все файлы и каталоги назад в единый файл ZIP, и я успешно изменил все ссылки.

Внимание

Ручное редактирование файла документа OOo с разархивированием всех содержащихся файлов и каталогов и затем архивирование их назад – процесс, подверженный ошибкам. Если Вы сделаете что-то неправильно, то документ прекратит работать. Другими словами, держите копию первоначального файла.

Добавление библиотек


Кнопка Добавить рис. 17.16 в диалоге Управление макросами открывает диалог Добавить библиотеки, который в действительности является диалогом выбора файла. Этот диалог используется для выбора файла, который содержит библиотеку для добавления. Для добавления библиотеки, содержащейся в документе, начните с выбора документа. Кнопка Открыть в окне выбора файла диалога Добавить библиотеки открывает окно выбора библиотек диалога Добавить библиотеки (рис. 17.17). Используйте окно выбора библиотек диалога Добавить библиотеки для просмотра библиотек, содержащихся в выбранном документе и выбора библиотек, которые Вы хотите добавить.

Окно выбора библиотек диалога Добавить библиотеки на рис. 17.17позволяет Вам добавить столько библиотек, сколько Вы хотите. Существующие библиотеки не перезаписываются, если флажок "Заменить существующие библиотеки" не установлен. Флажок "Вставить как ссылку" доступен, только если добавляются библиотеки, которые не содержатся в документе. Нажмите OK для добавления выбранных библиотек.




Рис. 17.17.  Использование диалога Добавить библиотеки для выбора библиотек для добавления

СОВЕТ

Не возможно перезаписать библиотеку Standard. Я не рекомендую использовать библиотеку Standard, потому что Вы не можете добавить ее к другому документу или приложению.

Библиотеки, которые не содержатся в документе, сохраняются в отдельных каталогах. Для добавления библиотеки, которая сохранена не в документе, откройте окно выбора файла диалога Добавить библиотеки (18) и выберите справочник, содержащий файлы библиотеки. Не имеет значения, где сохранены файлы библиотеки. Файлы могут быть на дискете как резервная копия, или они могут быть в том же самом каталоге, используемом OOo для библиотек прикладного уровня. Когда я устанавливаю новую версию OpenOffice.org, я добавляю библиотеки от моей предыдущей установки OOo.

Когда добавляется библиотека, которая не содержится в документе, видны два файла: dialog.xlb и script.xlb (смотри таблица 17.2 и рис. 17.18). Оба файла требуются и автоматически добавляются, независимо от того, какой файл Вы выберите. Другими словами, Вы можете выбрать dialog.xlb или script.xlb; оба будут добавлены.




Рис. 17.18.  Не имеет значения, какой файл Вы выберите, добавляются оба

СОВЕТ

Когда я устанавливаю новую версию OOo, я добавляю мои личные библиотеки от предыдущей установленной версии. Я также перемещаю мои библиотеки на другие компьютеры и устанавливаю их там.

Лекция 16 в OpenOffice.org Macros Explained содержит информацию и примеры управления и вызова библиотек и модулей с использованием OOo Basic.

Заключение


Макросы сохраняются в модулях, модули сохраняются в библиотеках, а библиотеки сохраняются в контейнерах библиотек. Приложение – контейнер библиотек, также как и каждый документ. IDE используется для создания и отладки макросов и диалогов.

Вы только что закончили один из самых трудных шагов в написании макросов для OpenOffice.org: написали Ваш первый макрос! Вы теперь готовы исследовать другие примеры макросов и создавать свои собственные.



Похожие:

17. Лекция: Первые шаги в работе с макросами iconПоложение о городской научно-практической конференции «Первые шаги в науку»
Научно-практическая конференция «Первые шаги в науку» (далее конференция) направлена на реализацию интеллектуальных компетентностей...
17. Лекция: Первые шаги в работе с макросами iconРабочая программа по немецкому языку для 3 класса составлена на основе Примерной программы начального общего образования по немецкому языку с учетом авторской программы И. Л. Бим для общеобразовательной школы «Немецкий язык. Первые шаги»
Название Немецкий язык. Первые шаги. Учебник немецкого языка для 3 класса общеобразовательных учреждений
17. Лекция: Первые шаги в работе с макросами iconПриказ №42 г. Сосновоборск По итогам проведения городской научно-практической конференции школьников «Первые шаги в науку» На основании приказа от 04 февраля 2011 г.
На основании приказа от 04 февраля 2011 г. №18 «О проведении городской научно-практической конференции школьников «Первые шаги в...
17. Лекция: Первые шаги в работе с макросами icon1 Районная научно практическая конференция учащихся начальных классов «Первые шаги» до 1 ноября
Районная научно – практическая конференция учащихся начальных классов «Первые шаги»
17. Лекция: Первые шаги в работе с макросами iconСписок учебников на 2010 2011 уч год
И. Л. Бим, Л. И. Рыжова, Л. М. Фомичева, Немецкий язык, Первые шаги, ч. 1,2 М: Просвещение, 2006г
17. Лекция: Первые шаги в работе с макросами iconМуниципальное общеобразовательное учреждение «Турунтаевская районная гимназия»
Минин Саша, Авдеева Ульяна – 2 «а» Почетные грамоты на Республиканской нпк «Первые шаги»
17. Лекция: Первые шаги в работе с макросами iconКонкурс для дошкольников «Первые шаги» (26 ноября ); Городской конкурс сценариев досуговых мероприятий

17. Лекция: Первые шаги в работе с макросами iconФевраль 2012 года «Первые шаги к Парнасу»
И хлынула вода, и залила она скважину, и всё заболотилось, и не было там ни одного сухого местечка…
17. Лекция: Первые шаги в работе с макросами iconСентябрь 2011 Литературная страничка «Первые шаги к Парнасу»
Друзья, в очередном номере Литературной странички мы продолжаем печатать стихи наших начинающих поэтов …
17. Лекция: Первые шаги в работе с макросами iconНоябрь 2011года «Первые шаги к Парнасу»
В этом году исполняется 220 лет со дня рождения С. Т. Аксакова. Это событие широко праздновалось во всем культурном мире
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©lib5.podelise.ru 2000-2015
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы