С помощью макросов можно существенно повысить эффективность обработки и работы с информацией в Эксель благодаря тому, что множество одинаковых действий, которые мы вынуждены повторять, можно оформить в виде специального кода, который возьмет эту заботу на себя. В данном статье мы рассмотрим, каким образом можно создать новый макрос, а также, как изменить существующий.
Содержание
Создание макросов
В Эксель создать макросы можно вручную или автоматически. Последний вариант предполагает запись действий, которые мы выполняем в программе, для их дальнейшего повтора. Это достаточно простой способ, пользователь не должен обладать какими-то навыками кодирования и т.д. Однако, в связи с этим, применить его можно не всегда.
Чтобы создавать макросы вручную, нужно уметь программировать. Но именно такой способ иногда является единственным или одним из немногих вариантов эффективного решения поставленной задачи.
Метод 1: Записываем макрос в автоматическом режиме
Чтобы иметь возможность записать макросы автоматически, для начала нужно их активировать в параметрах Эксель.
Узнать, как это можно сделать, можно в нашей статье – “Как включать и отключать макросы в Excel”.
После того, как макросы включены, можно перейти к нашей основной задаче.
- Переключаемся во вкладку “Разработчик”. В группе инструментов “Код” щелкаем по значку “Записать макрос”.
- На экране появится окошко, в котором мы можем выполнить настройки записи. Здесь указывается:
- имя макроса – любое, но должно начинаться с буквы (не с цифры), не допускаются пробелы.
- комбинация клавиш, которая будет использоваться для запуска макроса. Обязательной является Ctrl, а вторую мы можем назначить в специальном поле. Допустим, пусть это будет клавиша “r”. Если нужно использовать заглавную букву, нужно зажать клавишу Shift, которая будет добавлена в сочетание клавиш.
- место хранения макроса. Стандартно – это будет текущая книга, но, если требуется, можно выбрать новую книгу или личную книгу макросов. В нашем случае оставляем стандартный вариант.
- При желании можно добавить описание к макросу.
- По готовности кликаем OK.
- Теперь в созданный макрос будут записываться все действия, которые мы будем выполнить в книге. И так до тех пор, пока мы не остановим запись.
- Допустим, давайте давайте в ячейке D2 выполним умножение двух ячеек (B2 и B3):
=B2*B3
. - После того, как выражение готово, нажимаем клавишу Enter, чтобы получить результат. Затем останавливаем запись макроса, нажав на значок “Стоп” (появилась вместо кнопки “Записать макрос”) в группе инструментов “Код”.
Запускаем выполнение макроса
Чтобы проверить работу записанного макроса, нужно сделать следующее:
- В той же вкладке (“Разработчик”) и группе “Код” нажимаем кнопку “Макросы” (также можно воспользоваться горячими клавишами Alt+F8).
- В отобразившемся окошке выбираем наш макрос и жмем по команде “Выполнить”.
Примечание: Есть более простой вариант запустить выполнение макроса – воспользоваться сочетанием клавиш, которое мы задали при создании макроса.
- Результатом проверки будет повторение ранее выполненных (записанных) действий.
Корректируем макрос
Созданный макрос можно изменить. Самая распространенная причина, которая приводит к такой необходимости – сделанные при записи ошибки. Вот как можно отредактировать макрос:
- Нажимаем кнопку “Макросы” (или комбинацию Ctrl+F8).
- В появившемся окошке выбираем наш макрос и щелкаем “Изменить”.
- На экране отобразится окно редактора “Microsoft Visual Basic”, в котором мы можем внести правки. Структура каждого макроса следующая:
- открывается с команды “Sub”, закрывается – “End Sub”;
- после “Sub” отображается имя макроса;
- далее указано описание (если оно есть) и назначенная комбинация клавиш;
- команда “Range(“…”).Select” возвращает номер ячейки. К примеру, “Range(“B2″).Select” отбирает ячейку B2.
- В строке “ActiveCell.FormulaR1C1” указывается значение ячейки или действие в формуле.
- Давайте попробуем скорректировать макрос, а именно, добавить в него ячейку B4 со значением 3. В код макроса нужно добавить следующие строки:
Range("B4").Select
ActiveCell.FormulaR1C1 = "3" - Для результирующей ячейки D2, соответственно, тоже нужно изменить начальное выражение на следующее:
ActiveCell.FormulaR1C1 = "=RC[-2]*R[1]C[-2]*R[2]C[-2]"
.Примечание: Обратите внимание, что адреса ячеек в данной строке (ActiveCell.FormulaR1C1) пишутся в стиле R1C1.
- Когда все готово, редактор можно закрывать (просто щелкаем на крестик в правом верхнем углу окна).
- Запускаем выполнение измененного макроса, после чего можем заметить, что в таблице появилась новая заполненная ячейка (B4 со значением “3”), а также, пересчитан результат с учетом измененной формулы.
- Если мы имеем дело с большим макросом, на выполнение которого может потребоваться немало времени, ручное редактирование изменений поможет быстрее справиться с задачей.
- Добавив в конце команду
Application.ScreenUpdating = False
мы можем ускорить работу, так как во время выполнения макроса, изменения на экране отображаться не будут. - Если потребуется снова вернуть отображение на экране, пишем команду:
Application.ScreenUpdating = True
.
- Добавив в конце команду
- Чтобы не нагружать программу пересчетом после каждого внесенного изменения, в самом начале пишем команду
Application.Calculation = xlCalculationManual
, а в конце –Application.Calculation = xlCalculationAutomatic
. Теперь вычисление будет выполняться только один раз.
Метод 2: создание макроса вручную
Опытные пользователи Эксель в некоторых случаях предпочитают создавать макросы от начала до конца полностью вручную . План действий следующий:
- Во вкладке “Разработчик” нажимаем на значком “Visual Basic” (группа инструментов “Код”).
- В результате, на экране появится уже знакомое окно, которое мы рассмотрели выше.
- Здесь создается макрос и пишется ее код – полностью вручную.
Заключение
Таким образом, использование макросов в табличном редакторе Эксель позволяет повысить эффективность и скорость работы. Создать их можно, как в автоматическом режиме, просто записав выполненные действия, так и написав код с нуля. Также, при необходимости, можно внести изменения в ранее созданный макрос и настроить отдельные аспекты его работы.