Запись макросов VBA: макрорекордер (MacroRecorder)

Содержание

Введение
Технология записи
Что происходит в процессе записи?
Почему записанный макрос требует редактирования?

Введение

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

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

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

Технология записи

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

Основным средством создания макросов является запись последовательности действий с помощью команды меню Сервис→Макрос→Записать (Tools→Macro→Record...). Причем это довольно мало зависит от квалификации пользователя, если она у него вообще есть. Можно сразу сказать, что если он не умеет работать с клавиатурой, то и эту работу сделать не получится.

В Word с версии 2007 запуск производится из панели Вид (справа). Для Ленты это будет вкладка Вид⇒Макросы⇒Запись макроса...


Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!


После этого выводится диалог

Русский English

в котором надо указать название макроса (можно изменить позднее), место (файл) его хранения (обычно шаблон, чаще всего Normal.dot[m]), подключение к кнопке панели инструментов или горячей клавише (необязательно и можно исправить) и желаемое описание. Запись действий начинается после завершения работы с диалогом. Вместо него выводится простейшая панель:

[Recorder Dialog]

позволяющая приостановить запись или прекратить (завершить) её.

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


Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!


Надо заметить, что если в настройках программы указано запрашивать сохранение шаблона, то при отказе от него (во время закрытия программы) макрос будет потерян!

После завершения процесса записи, макрос сразу готов к исполнению. См. Запуск макросов.

Имя макропрограммы должно начинаться с буквы и состоять из английских букв, цифр и символов подчеркивания (пробелы запрещены!).

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

Особенности для Excel

....

Смещение в записи всегда абсолютное, то есть программа запишет координаты.

В ряде очевидных случаев происходит запись действий мышью. Например, активация мышью конкретной ячейки на листе.

....

См. также VBA в Excel.

Особенности для PowerPoint

Обратите внимание! Начиная с PowerPoint 2010, данная программа не содержит макрорекордера. Записывать программы на VBA можно только набирая их вручную, либо воспользовавшись предыдущими версиями. Последний способ прекрасно работает и не вызывает проблем при переносе (они не обнаружены), но нужно учитывать, что развитие объектной модели не позволит воспользоваться всеми возможностями приложения.

....

См. также VBA в PowerPoint.

Что происходит в процессе записи?

Во время работы макрорекордера записываются все действия, производимые пользователем:

  1. нажатия клавиш, приводящие к вводу текста или перемещению курсора;
  2. выполнение пунктов главного или контекстного меню, исключая нажатия на кнопки в ленте;
  3. всё, что задается диалогами, вне зависимости от способа их открытия;
  4. действия, задаваемые горячими клавишами.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!


Почему записанный макрос требует редактирования?

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

В-нулевых, это учит программировать! Номер — не описка. Данная причина важнее всех, так как пользователь, разработавший алгоритм действий, намного быстрее поймет то, что записалось в программе, чем кто бы то ни было другой. А любые малопонятные мелочи всегда можно разобрать отдельно с помощью Справки.


Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!


Список можно продолжать до бесконечности для особо упёртых...


Copyright © 1993–2024 Мацкявичюс Д.А. Все права защищены.
Никакая часть сайта не может быть воспроизведена никаким способом без письменного разрешения правообладателя и явной ссылки на данный ресурс.