Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Visual Basic и Visual Basic for Applications.doc
Скачиваний:
175
Добавлен:
01.05.2014
Размер:
579.07 Кб
Скачать

4.3. Макропрограммирование

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

Макрокоманда (macros, macro, instruction) – это предложение языка, идентифицирующее набор простейших команд (инструкций). В определенном смысле макрокоманда – это минимально возможный программный модуль.

К классу макрокоманд относят встроенные процедуры и функции.

Применительно к Microsoft Office макрокоманда – это сохраняемая под определенным именем последовательность действий на уровне команд главного меню, программных инструкций на языке программирования Basic.

Макрокоманды позволяют: 1) выполнять стандартные операции редактирования и оформления документов; 2) объединять несколько последовательно выполняемых команд в одну; 3) использовать вызов диалоговых окон; 4) автоматизировать запуск и выполнение приложений (макрокоманда может включать в себя другие макрокоманды) и т. д.

Макрокоманды Microsoft Office делятся на: 1) клавишные макрокоманды – последовательность нажатий клавиш, сохраненная в виде программы; 2) языковые макрокоманды – последовательность команд на языке программирования VB.

В различных приложениях Microsoft Office тексты макросов хранятся по-разному. В Microsoft Excel для этого используется специальный лист рабочей книги, называемый модулем. В Microsoft Word для этого используется специальный файл с расширением .dot. Microsoft Access использует более сложную структуру хранения текстов программ: листы макросов и модулей.

Макрос на языке Visual Basic должен содержать хотя бы одну подпрограмму, которая называется главной. В версии для Word она называется MAIN, в других версиях имя главной программы можно выбирать произвольно. Главная программа не может быть оформлена в виде функции. Подпрограммы не могут быть вложенными. Подпрограмма начинается оператором заголовка, например Sub MAIN, затем следуют строки, состоящие из операторов. В одной строке может находиться один или несколько операторов. Один оператор отделяется от другого двоеточием. Один оператор может занимать несколько строк; в этом случае символом продолжения (переноса) служит последовательность ПРОБЕЛ-ПОДЧЕРКИВАНИЕ (_) или ПРОБЕЛ-КОСАЯ_ЧЕРТА (\). Последним оператором в подпрограмме должен быть оператор End Sub.

4.4. Создание макросов в Word

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

Чтобы создать макрос, надо выполнить команду СЕРВИС / МАКРОКОМАНДА (Tools-Macro). Откроется диалог МАКРОКОМАНДА (Macro). В окне перечислены все макрокоманды, доступные в данный момент. По умолчанию перечисляются макрокоманды, существующие в активных шаблонах.

Если открыть список МАКРОКОМАНДЫ_ДОСТУПНЫЕ_В (Macros Available In), то можно выбрать источник макрокоманд.

Чтобы создать новый макрос, нужно ввести имя в поле ИМЯ (Name) диалога МАКРОКОМАНДА. Щелчок по кнопке СОЗДАТЬ (Create) открывает окно редактирования макроса. Можно использовать другой способ – щелкнуть по кнопке ЗАПИСАТЬ (Record) – будет присвоено имя Макро1 (Macro1), Макро2 (Macro2) и т.д.; при этом откроется диалог ЗАПИСЬ_МАКРОКОМАНДЫ (Record Macro). Указать, куда будет записан макрос (в какой шаблон). Кроме того, диалог ЗАПИСЬ_МАКРОКОМАНДЫ позволяет связать макрос с одним из элементов управления приложения Word; выбрать соответствующую кнопку в группе НАЗНАЧИТЬ_МАКРОКОМАНДУ (Assign Macro To) и определить параметры элементов управления. В поле ОПИСАНИЕ (Description) можно прокомментировать действия макроса; этот текст будет появляться в строке состояния при запуске макроса. Если после всего этого щелкнуть по кнопке ОК, начнется запись макроса. Об этом напоминает курсор, принявший форму магнитофонной кассеты.

Панель ЗАПИСЬ_МАКРО (Record Macro), которая появляется в окне документа, позволяет прекратить или приостановить запись макроса: кнопки СТОП (Stop) и ПАУЗА (Pause); нажатия на эти кнопки в макрос не записываются.

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

С точки зрения Word макрос является обычным файлом, при работе с ним можно использовать команды меню ПРАВКА (Edit). Можно записывать макросы как обычные текстовые файлы любым текстовым редактором, загружать их в Word и затем переносить в шаблоны командами меню ПРАВКА.

Макрос не будет сохранен, пока не сохранен шаблон, к которому он относится: надо выполнить ФАЙЛ / СОХРАНИТЬ ВСЕ (File / Save All).

Для удаления макроса надо выбрать его в списке диалога МАКРОКОМАНДА и нажать кнопку УДАЛИТЬ (Delete), последует запрос на подтверждение.

Для работы с макросом можно использовать ОРГАНИЗАТОР (Organizer): копирование макросов из одного шаблона в другой, удаление макросов и пр. Для его вызова надо щелкнуть по одноименной кнопке в окне диалога МАКРОКОМАНДА.

Для выполнения макроса надо выбрать СЕРВИС / МАКРОКОМАНДА, выделить макрос в списке макросов и щелкнуть по кнопке ВЫПОЛНИТЬ (Run). Для более удобного запуска макроса можно добавить для него новый пункт меню или назначить кнопку на одной из панелей редактора Word.

Чтобы назначить новую кнопку для макроса, надо выполнить СЕРВИС / НАСТРОЙКА (Tools / Customize), в диалоге НАСТРОЙКА выбрать вкладку ПАНЕЛИ (Toolbars), открыть список МАКРО, установить в нем курсор на строку с именем макроопределения SetPage и, нажав левую кнопку мыши, перетащить эту строку за пределы диалога; отпустить кнопку; в диалоге НЕСТАНДАРТНАЯ_КНОПКА (Custom Button) в поле ИМЯ КНОПКИ (Button Name) задать текстовую строку, которая будет выведена на новой кнопке; по умолчанию она совпадает с именем макроса. Можно выбрать цвет и рисунок, для этого надо щелкнуть по кнопке ПРАВКА и, открыв диалог РЕДАКТОР КНОПОК (Button Editor), сделать нужный выбор и нажать ОК. После этого кнопку можно перетащить на одну из панелей инструментов Word или на свободное место (будет создана новая панель).

Для редактирования созданного макроса надо выполнить команду СЕРВИС / МАКРОКОМАНДА, выбрать макрос и щелкнуть по кнопке ПРАВКА. Откроется новое окно документа с редактируемым макросом. При этом появится панель инструментов МАКРО; если ее нет, то выполнить ВИД / ПАНЕЛИ ИНСТРУМЕНТОВ / МАКРО.

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

Кнопка ЗАПИСЬ (жирная точка) включает режим записи макрокоманды – открывается диалог ЗАПИСЬ_МАКРОКОМАНДЫ, предлагается ввести имя нового макроса и связать с ним какой-либо элемент управления.

Кнопка ЗАПИСАТЬ_СЛЕДУЮЩУЮ КОМАНДУ (жирная точка и цифра 1) включает запись макрокоманды – можно записать следующее действие в окно редактора в виде оператора WordBasic.

Кнопка СТАРТ (темный треугольник) позволяет выполнить активный макрос. Кнопка ТРАССА (светлый треугольник) запускает макрос при этом выполняемый оператор выделяется цветом.

Кнопка ПРОДОЛЖИТЬ (две вертикальных черты) продолжает выполнение, если ранее была нажата кнопка СТОП или выполнялся оператор Stop в макросе.

Кнопка ШАГ_ВНУТРЬ (стрелка в середину столбца горизонтальных линий) выполняет останов перед выполнением очередного оператора, при следующем нажатии оператор будет выполнен.

Если нажать кнопку ШАГ_ЧЕРЕЗ (стрелка за столбец горизонтальных линий), то подпрограмма, которая выполняется при трассировке оператора Call, не прерывается.

Если нажать кнопку ПОКАЗАТЬ_ПЕРЕМЕННЫЕ (очки), то откроется диалог для просмотра и изменения переменных.

Кнопка ДОБАВИТЬ_ИЛИ_УДАЛИТЬ_КОММЕНТАРИЙ (горизонтальные линии) позволяет сделать комментирование выделенных строк макроса вставкой перед ними слова REM.