Главная » Статьи » VBA и макросы

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

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

Другая причина использовать инструмент "запись сценария" - при необходимости узнать как решить задачу в проекте, с которой ранее никогда не сталкивались (изменить цвет ячейки, добавить рамку в талбицу или что угодно другое).

Сразу отметим, что не всегда можно найти ответ таким образом но в большинстве простых случаев это работает. Допустим появилось желание используя vba менять фоновый цвет некоторым ячейкам или начначать фоновый градиентный цвет. Раньше никогда такого не делали и ответа не знаем, вместо поиска решения в интернете выполняем шаги:

  1. Переходим на вкладку "Developer" ("Разработчик").
  2. Нажимаем кнопку "Record Macro", указываем имя новой процедуре, которая автоматически будет создана и желательно добавить небольшое описание наших действий.
  3. Теперь в стандартном темпе самостоятельно делаем то, что нужно будет выполнять автоматически позже.
  4. Когда все манипуляции сделали на вкладке "Developer" ("Разработчик") нажимаем кнопку "Stop recording", которая появится на месте кнопки в шаге 2.
  5. Таким образом мы создали сценарий. Чтобы на него посмотреть нажимаем кнопку "Macros" слева от кнопки предыдущего шага.
  6. В окне всех макросов выбираем наш только что созданный сценарий по названию, нажимаем "Edit" и в окне редактора можем увидеть весь автоматически генерируемый код наших действий с книгой.
  7. Можем делать с процедурой что угодно: назначить её обработчиком для какого-либо события, скопировать часть кода в другое место или отредактировать код для выполнения таких же действий автоматически но уже с другими элементами документа.

 Как это выглядит:

Record Macro

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

Единственное замечание к таким манипуляциям: часто автогенерируемый код содержит прямые ссылки на объекты вместо относительных, например в нашем примере выше пришлось вручную поменять Worksheets("Sheet1") на относительный указатель активного листа ActiveSheet, таким образом наш макрос будет работать теперь с листом, который сейчас активен.

Если макрос универсален и будет использоваться часто, можно назначить для него комбинацию клавиш быстрого доступа. Указать можно при создании макроса или при редактировании нажав на "Options", выбрать любую букву английского алфавита и в дальнейшем при нажатии комбинации Ctrl + указанная буква, сразу же будет выполняться связанный с ней макрос. Не устанавливайте для быстрого доступа буквы S, X, C, V, A, которые часто используются для действий по-умолчанию.

 

Категория: VBA и макросы | Добавил: Руслан_Савелов (17.08.2016)
Просмотров: 508 | Теги: макрос, автогенерация кода, запись макроса | Рейтинг: 0.0/0
Всего комментариев: 0
ComForm">
avatar