Пример программного кода макроса

Структура записанного макроса

Запись макроса

Чтобы записать макрос, нужно использовать приложение Microsoft Office, а не редактор Visual Basic:

1. Выбрать из меню "Сервис" ("Tools") команду "Макрос" ("Macro"), а затем строку "Начать запись" ("Begin record"); или включить панель инструментов Visual Basic и выбрать действие "Записать макрос" ("Record Macro").

2. В диалоговом окне "Запись макроса" ("Record Macro") в поле "Имя макроса" ("Macro Name") заменить имя макроса, предлагаемое по умолчанию, на нужное Вам и выбрать Ok.

3. В том же окне в списке "Макрос доступен для" ("Store Macro In") указать, где хранить новый макрос. Выберите: в Microsoft Excel – "This Workbook" ("Эта книга"), в Word – "All Documents (Normal.dot") ["Всех документов (Обычный.dot)"].

4. Выполнить действия, которые хотите сохранить в макросе.

5. На панели инструментов "Stop Recording" ("Остановка записи") щелкнуть кнопку "Stop Recording" ("Остановить запись").

Итак, макрос записан. Чтобы просмотреть его код, надо выбрать из меню "Сервис" ("Tools") команду "Макрос" ("Macro"), а затем строку "Макросы" ("Macros"). В диалоговом окне "Макрос" ("Macros") выбрать имя нужного макроса и щелкнуть кнопку "Изменить" ("Edit").

Выполнение макроса (стандартный способ)

1. Установить курсор в место вставки выполнения макроса.

2. Выбрать из меню "Сервис" ("Tools") команду "Макрос" ("Macro"), а затем строку "Макросы" ("Macros").

3. В диалоговом окне "Макрос" ("Macros") выбрать имя нужного макроса и выбрать "Выполнить" ("Run").

Макросы, создаваемые с помощью макрорекордера, сохраняются в специальной части файла данных, называемой модулем (modules). Модуль VBA содержит исходный код макроса – текстовое представление инструкций (иначе говоря, программу на языке VBA). Фактически макрос является процедурой VBA. Записанный макрос имеет строго определенную структуру. Ниже представлен исходный код макроса, созданного в Microsoft Word.

Sub InsertButton()‘‘ InsertButton Макрос‘ Макрос записан 30.06.04 Владимир‘ Selection.TypeText Text:=” ” Selection.Font.Reset Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.InsertSymbol Font:=”Wingdings”, CharacterNumber:=-3983, _ Unicode:=True Selection.MoveRight Unit:=wdCharacter, Count:=1End Sub

Каждый макрос VBA начинается с ключевого слова Sub, за которым следует имя макроса. Строку, содержащую ключевое слово Sub и имя макроса, называют строкой объявления (declaration) макроса. За именем макроса всегда следуют пустые круглые скобки (т.к. макрос является процедурой VBA без параметров).

За строкой объявления макроса следуют строки комментариев. Комментарий (comment) – это строка в макросе VBA, которая не содержит инструкций, являющихся частью этого макроса. Каждая строка комментария начинается с символа апострофа ( ‘ ). Комментарии содержат имя макроса и текст, который был введен пользователем в текстовое поле "Описание" ("Description") диалогового окна "Запись макроса" ("Record Macro") в момент записи этого макроса. Конкретное количество и содержимое строк комментариев в записанном макросе зависит от длины введенного описания. В приведенном примере комментарий состоит из четырех строк.

Сразу за объявлением макроса следует тело (body) макроса. Каждая строка в теле макроса состоит из одного или более операторов VBA. Оператор (statement) VBA – это последовательность ключевых слов и других символов, которые вместе составляют одну полную инструкцию для VBA. Макрос VBA состоит из одного или нескольких операторов.

За телом макроса следует строка, содержащая ключевые слова End Sub, которые сообщают VBA о том, что достигнут конец макроса (процедуры).

В общем виде структуру кода макроса можно представить следующим образом:

Sub имяМакроса ()‘ текст комментария Оператор1 Оператор2 ... ОператорNEnd Sub