Введение в язык VBA Макрорекордер в Word и Excel

          Назад



1.3 Как создать программу: применение макрорекордера


Макрорекордер в Word и Excel: запуск, приемы работы, возможности

В большинство программ Microsoft Office, таких, как Excel, Word, PowerPoint и т.п., встроено замечательное средство, которое позволит вам создавать программы, вообще ничего не зная о программировании. Это средство называется макрорекордером.

Макрорекордер, как понятно из его названия — средство для записи макросов. Макрос — всего лишь еще одно название для VBA-программы, а макрорекордер — средство для его автоматического создания.

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

Конечно, макрорекордер позволяет написать только самые простые VBA-программы. Однако и он может принести много пользы. Например, можно "положить" на горячие клавиши те слова, словосочетания, варианты оформления и т.п., которые вам часто приходится вводить (должность, название фирмы, продукт, ФИО директора и ответственного исполнителя и т.п.) — этим вы сэкономите много времени.

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

Перед созданием макроса в макрорекордере:

необходимо очень тщательно спланировать макрос, хорошо продумав, что вы будете делать и в какой последовательности. Если есть возможность, продумайте подготовительные действия. Например, если нужно вставлять текущую дату в начало документа, может быть, есть смысл первой командой макроса сделать переход на начало документа (< Ctrl>+< Home>);

посмотрите, нет ли готовой команды, которую можно сразу назначить клавише или кнопке в панели инструментов без изготовления макроса. Посмотреть можно при помощи меню Сервис -> Настройка. На вкладке Команды можно перетащить нужную команду на требуемую панель управления, а нажав на этой же вкладке кнопку Клавиатура — назначить для команды нужную комбинацию клавиш;

если собираетесь при помощи макроса менять оформление текста, то правильнее вначале создать новый стиль с вашим оформлением, а потом уже применять этот стиль к тексту. В этом случае опять-таки можно обойтись без макроса, просто назначив стиль комбинации клавиш.

Как создать макрос в макрорекордере (для тех программ Microsoft Office, для которых такое средство предусмотрено, например, Word, Excel, PowerPoint, Project):

Внимание! Приложения Microsoft Office 2003 по умолчанию настроены так, что не позволяют запускать макросы. Поэтому перед тем, как приступать к созданию макросов, в меню Сервис -> Макрос -> Безопасность переставьте переключатель в положение "Средняя" или "Низкая", а потом закройте и снова откройте данное приложение. Это потребуется сделать только один раз.

В меню Сервис->Макрос выберите команду Начать запись. В открывшемся окне вам потребуется определить:

Имя макроса. Правила такие: не должно начинаться с цифры, не должно быть пробелов и символов пунктуации. Максимальная длина в Excel — 64 символа, в Word — 80 символов. Можно писать по-русски.

Будет ли макрос назначен кнопке на панели управления или комбинации клавиш. Назначить макрос кнопке/комбинации клавиш и использовать другие средства для его вызова можно и потом — об этом будет рассказано в следующем разделе.

Где сохранить макрос. В Word в вашем распоряжении текущий файл и шаблон для всех вновь создаваемых документов — normal.dot. В Excel в вашем распоряжении текущая книга, возможность создать макрос одновременно с созданием новой книги и личная книга макросов personal. xls (макросы из этой скрытой книги будут доступны в любых книгах). Подробнее про то, где может храниться программный код, мы поговорим в разделе про структуру проектов VBA.

Описание. Лучше заполнить — это подарок не только для других, но и для себя (через несколько месяцев).

После нажатия на кнопку OK или назначения кнопки/клавиатурной комбинации начнется запись макроса. Указатель мыши при этом примет вид магнитофонной кассеты и появится маленькая панель Остановить запись. На ней всего две кнопки — Остановить запись и Пауза. Если вы случайно закрыли эту панель, остановить запись можно через меню Сервис->Макрос->Остановить запись.

Самый простой способ запустить макрос, которому не назначена кнопка или клавиатурная комбинация — в меню Сервис выбрать Макрос -> Макросы (или нажать кнопку <Alt>+<F8>), в списке выбрать нужный макрос и нажать на кнопку Выполнить. Из этого же окна можно просматривать/редактировать макросы, удалять/перемещать их и т.п.

Если макросов создано много, то получить список всех назначений клавиш (включая назначения для встроенных макросов Word) можно при помощи меню Сервис -> Макрос -> Макросы, затем в списке Макросы из выбрать команды Word и выбрать в списке Имя команду List Commands. В ответ на приглашение нужно выбрать Текущие настройки меню и клавиш (иначе будет выведен полный список команд Word на 26 страниц). В ваш документ будет вставлена таблица с текущими назначениями клавиш, которую можно распечатать.

Если у вас уже есть значительное количество созданных при помощи макрорекордера макросов, то после освоения языка VBA есть смысл подумать над ними и, может быть, внести изменения. Чаще всего есть смысл подумать над следующими моментами:

если в вашем макросе повторяются какие-либо действия, возможно, есть смысл организовать цикл;

может быть, есть смысл в ходе выполнения уточнить что-либо у пользователя (при помощи Input Box или элементов управления);

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

Как все это сделать — будет рассказано в следующих главах.

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

Конкретный пример: вам нужно автоматизировать создание диаграмм в Excel. Поскольку в русской версии Excel для создания диаграммы вручную вы используете команду Вставка -> Диаграмма, то скорее всего, в справке по VBA вы начнете в первую очередь искать объект Diagram. И вы его найдете — и скорее всего, потратите определенное время на его изучение, прежде чем поймете, что это не та диаграмма! Объект Diagram представляет то, что в русской версии Excel называется "Схематическая диаграмма" (доступны из того же меню Вставка), а обычная диаграмма — это объект Chart. А вот если бы мы пустили вперед разведчика (то есть создали бы диаграмму с записью в макрорекордере и посмотрели бы созданный код), он бы сразу указал нам нужное направление движения.




Далее