Запись макросов VBA: макрорекордер (MacroRecorder)
Содержание |
Введение
Уже на самых первых этапах развития программирования на ПК стали формироваться способы облегчения рутинных процедур. В современных средах это всегда будет, в первую очередь, раскраска кода и интерактивные подсказки по мере ввода. Для объектно-ориентированных языков добавляется доступ к существующим объектам, нередко подчиняющимся достаточно сложной иерархии, а также к их свойствам и методам.
Но, в средах с заранее предопределенным набором действий над внутренними объектами, подход может быть существенно изменен. Оптимальным вариантом становится именно запись реально совершаемого пользователем в виде программного кода, что позволяет ускорить формирование последнего в сотни раз. Неизбежные ошибки набора здесь абсолютно исключены, то есть не потребуется время на их нахождение, исправление и отладку. Также нельзя не упомянуть, что запись конкретных действий приводит к их визуальному контролю в ходе самого процесса. Таким образом это становится и первым шагом в тестировании программы.
Не будем преувеличивать значимость такой записи, так как она должна быть сразу отнесена к примитивнейшим версиям линейного программирования. Но всё же надо подчеркнуть, что для многих пользователей даже это станет колоссальным подспорьем, особенно на первых этапах освоения. Равно как и профессиональный программист должен мгновенно понять, что подобный примитив, ситуативно экономящий всего несколько минут, может привести к накоплению в десятки часов напряженного труда.
Технология записи
Прежде чем начинать создание макроса, нужно четко сформулировать, что и как он должен делать, а в особо сложных случаях даже построить алгоритм его работы на бумаге.
Основным средством создания макросов является запись последовательности действий с помощью команды меню Сервис→Макрос→Записать (Tools→Macro→Record...). Причем это довольно мало зависит от квалификации пользователя, если она у него вообще есть. Можно сразу сказать, что если он не умеет работать с клавиатурой, то и эту работу сделать не получится.
В Word с версии 2007 запуск производится из панели Вид (справа). Для Ленты это будет вкладка Вид⇒Макросы⇒Запись макроса...
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
После этого выводится диалог
в котором надо указать название макроса (можно изменить позднее), место (файл) его хранения (обычно шаблон, чаще всего Normal.dot[m]), подключение к кнопке панели инструментов или горячей клавише (необязательно и можно исправить) и желаемое описание. Запись действий начинается после завершения работы с диалогом. Вместо него выводится простейшая панель:
позволяющая приостановить запись или прекратить (завершить) её.
В версиях с 2007 данная панель может не выводиться и для остановки придется зайти в соответствующий подпункт названных выше вкладок.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Надо заметить, что если в настройках программы указано запрашивать сохранение шаблона, то при отказе от него (во время закрытия программы) макрос будет потерян!
После завершения процесса записи, макрос сразу готов к исполнению. См. Запуск макросов.
Имя макропрограммы должно начинаться с буквы и состоять из английских букв, цифр и символов подчеркивания (пробелы запрещены!).
Использование горячей клавиши для данного варианта рекомендовать не стоит. Случайное нажатие вне процесса разработки может привести к порче документа, которую вы просто не заметите вовремя.
Особенности для Excel
....
Смещение в записи всегда абсолютное, то есть программа запишет координаты.
В ряде очевидных случаев происходит запись действий мышью. Например, активация мышью конкретной ячейки на листе.
....
См. также VBA в Excel.
Особенности для PowerPoint
Обратите внимание! Начиная с PowerPoint 2010, данная программа не содержит макрорекордера. Записывать программы на VBA можно только набирая их вручную, либо воспользовавшись предыдущими версиями. Последний способ прекрасно работает и не вызывает проблем при переносе (они не обнаружены), но нужно учитывать, что развитие объектной модели не позволит воспользоваться всеми возможностями приложения.
....
См. также VBA в PowerPoint.
Что происходит в процессе записи?
Во время работы макрорекордера записываются все действия, производимые пользователем:
- нажатия клавиш, приводящие к вводу текста или перемещению курсора;
- выполнение пунктов главного или контекстного меню, исключая нажатия на кнопки в ленте;
- всё, что задается диалогами, вне зависимости от способа их открытия;
- действия, задаваемые горячими клавишами.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Почему записанный макрос требует редактирования?
Этот вопрос никогда не возникает у тех, кто пытается ограничить себя просто записью последовательности нажатия клавиш. Для тех же, кто любит работать с комфортом, понимание ответа позволит избавить себя от многих мучений.
В-нулевых, это учит программировать! Номер — не описка. Данная причина важнее всех, так как пользователь, разработавший алгоритм действий, намного быстрее поймет то, что записалось в программе, чем кто бы то ни было другой. А любые малопонятные мелочи всегда можно разобрать отдельно с помощью Справки.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Список можно продолжать до бесконечности для особо упёртых...