Тема 2.3 Макросы. Использование макрорекордера
Макросы
Независимо от используемых операционной системы и программных приложений MS Office пользователь часто выполняет одни и те же последовательности команд для многих рутинных задач. Вместо повторения последовательности команд каждый раз, когда необходимо выполнить какую-либо задачу, можно создать макрос (macro), который вместо пользователя будет выполнять эту последовательность. Термин macro произошел от греческого слова, означающего расширенный или растянутый.
Макрос – это программа (в контексте офисного программирования - созданная автоматически), состоящая из списка команд, которые должны быть выполнены приложением.
Основными преимуществами использования макросов являются:
- повышение точности и скорости работы, поскольку компьютеры лучше приспособлены для выполнения повторяющихся задач, чем человек;
- при выполнении макросов обычно нет необходимости в присутствии человека-оператора; в случае, если макрос очень длинный и выполняет операции, требующие значительного времени (например, поиск в базе данных и сортировка), пользователь может переключиться на другое приложение.
Можно выделить три основные разновидности макросов:
- Командные макросы – это наиболее распространенные макросы, обычно состоящие из операторов, эквивалентным тем или иным командам меню или параметрам диалоговых окон. Основным предназначением такого макроса является выполнение действий, аналогичных командам меню – т.е. изменение окружения и основных объектов приложения.
- Пользовательские функции – работают аналогично встроенным функциям приложения. Отличие этих функций от командных макросов состоит в том, что они используют значения передаваемых им аргументов, производят некоторые вычисления и возвращают результат в точку вызова, но не изменяют среды приложения.
- Макрофункции – представляют сочетание командных макросов и пользовательских функций. Они могут использовать аргументы и возвращать результат, подобно пользовательским функциям, а также могут изменять среду приложения, как и командные макросы. Чаще всего эти макросы вызываются из других макросов, и активно используются для модульного программирования.
Таким образом, различают 2 способа разработки макроса:
- автоматическое создание, с использованием макрорекордера;
- написание макроса "с нуля", используя язык программирования VBA.
Для записи макроса в приложении Microsoft Office можно использовать меню "Сервис/Макрос/Начать запись" или выбрать кнопку "Записать макрос" на панели инструментов Visual Basic. До начала записи нужно указать имя макроса и определить, где он будет храниться и как будет доступен. Затем выполнить действия, которые требуется сохранить в макросе. Для завершения записи нужно на панели инструментов "Остановка записи" щелкнуть кнопку "Остановить запись". Для выполнения макроса необходимо:
- Установить курсор в место вставки выполнения макроса.
- Выбрать пункт меню "Сервис/Макрос/Макросы".
- В появившемся диалоговом окне "Макрос" выбрать имя нужного макроса и выбрать "Выполнить".
Структура записанного макроса
Макросы, создаваемые макрорекордером MS Office, сохраняются в специальной части файла данных, называемой модулем. Модуль VBA содержит исходный код программы на языке VBA. Фактически макрос является подпрограммой (а точнее, процедурой) VBA. Записанный макрос имеет строго определенную структуру. Ниже представлен исходный код простого макроса, созданного в Microsoft Word.Листинг 1. Пример макроса
Sub Hello() ' Макрос изменяет размер, начертание шрифта, выравнивание абзаца и ' выводит надпись в активный документ MS Word ' Selection.Font.Size = 24 Selection.Font.Bold = wdToggle Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter Selection.TypeText Text:="Hello, World!" End Sub
В общем виде структуру кода макроса можно представить следующим образом2:
Sub имяМакроса () ' текст комментария Оператор1 Оператор2 ... ОператорN End Sub
Каждый макрос VBA начинается с ключевого слова Sub, за которым следует имя макроса. Строку, содержащую ключевое слово Sub и имя макроса, называют строкой объявления (declaration) макроса. За именем макроса всегда следуют пустые круглые скобки (т.к. макрос является процедурой VBA без параметров). За строкой объявления макроса следуют строки комментариев. Комментарий (comment) – это строка в макросе VBA, которая не содержит инструкций, являющихся частью этого макроса. Каждая строка комментария начинается с символа апострофа ( ' ). Комментарии содержат имя макроса и текст, который был введен пользователем в текстовое поле "Описание" ("Description") диалогового окна "Запись макроса" ("Record Macro") в момент записи этого макроса. Сразу за объявлением макроса следует тело макроса (body). Каждая строка в теле макроса состоит из одного или более операторов VBA. Оператор VBA (statement) – это последовательность ключевых слов и других символов, которые вместе составляют одну полную инструкцию для VBA. Макрос VBA состоит из одного или нескольких операторов.
Конец макроса выделяется ключевой строкой End Sub, завершающей тело макроса.
CC-BY-CA Анатольев А.Г., 31.01.2012