Макросы в Microsoft Excel позволяют значительно ускорить работу с документами в этом табличном редакторе. Эта возможность достигается за счет автоматизации повторяющихся действий, прописанных в специальном коде. Давайте посмотрим, как создавать макросы в программе и как их можно редактировать.
Способы записи макросов в Excel
Макрос записывается двумя способами: автоматически и вручную. Используя первый вариант, вы просто записываете определенные действия в Microsoft Excel, которые вы выполняете в данный момент времени. Затем вы можете воспроизвести эту запись. Этот метод очень прост и не требует знания кода, но его применение на практике весьма ограничено. Ручной ввод, наоборот, требует знаний программирования, так как код набирается вручную с клавиатуры. Однако хорошо написанный таким образом код может значительно ускорить выполнение процессов.
Вариант 1: Автоматическая запись макросов
Прежде чем вы сможете начать запись макросов автоматически, вам необходимо включить их в Microsoft Excel. Для этого воспользуйтесь нашим отдельным материалом.
Подробнее: Включение или отключение макросов в Microsoft Excel
Когда все готово, начинаем запись.
- Откроется окно настроек записи макроса. Здесь вы можете указать для него любое имя, если имя по умолчанию вас не устраивает. Главное, чтобы имя начиналось с буквы, а не с цифры, и в имени не было пробелов. Мы оставили имя по умолчанию — «Макрос1».
- Здесь при желании можно задать сочетание клавиш, при его нажатии будет запускаться макрос. Первая клавиша должна быть Ctrl, а вторую пользователь задает сам. Мы устанавливаем клавишу M в качестве примера.
- Следующим шагом будет решить, где сохранить макрос. По умолчанию находится в той же книге (файле), но при желании можно поместить хранилище в новую книгу или в отдельную книгу с макросами. Оставляем значение по умолчанию.
- В нижнем поле можно оставить любое описание макроса, подходящее по контексту, но это не обязательно. Когда все настройки закончены, нажмите кнопку «ОК».
- После этого все ваши действия в этой книге (файле) Excel будут записываться в макрос до тех пор, пока вы не перестанете записывать себя.
- Например, запишем простейшую арифметическую операцию: сложение содержимого трех ячеек (=C4+C5+C6).
- Когда алгоритм завершится, нажмите кнопку «Остановить запись». Эта кнопка была преобразована из кнопки «Запись макроса» после включения записи.
Запуск макроса
Чтобы проверить, как работает записанный макрос, выполним несколько простых действий.
- После этого откроется окно со списком зарегистрированных макросов. Ищем макрос, который мы записали, выделяем его и нажимаем кнопку «Выполнить».
- Можно сделать еще проще и даже не вызывать окно выбора макроса, так как на первом шаге мы устанавливаем горячую клавишу для быстрого вызова макроса. В нашем случае это Ctrl+M. Нажимаем эту комбинацию на клавиатуре, после чего она запускается.
- Как видите, он в точности выполнил все действия, записанные ранее.
Редактирование макроса
Естественно, при желании вы можете подправить созданный макрос, чтобы всегда поддерживать его в актуальном состоянии и исправить любые неточности, допущенные в процессе записи.
- Открывается Microsoft Visual Basic (VBE) — среда, в которой они редактируются.
- Каждая запись макроса начинается с команды Sub и заканчивается командой End Sub. Сразу после Sub идет название макроса. Range("..."). Оператор Select задает выбор ячейки. Например, команда "Range("C4).Select" выделяет ячейку "C4". Оператор ActiveCell.FormulaR1C1 используется для записи действий в формулах и других расчетах.
- Попробуем немного изменить макрос, добавив выражение:
Диапазон ("C3"). Выбирать
ActiveCell.FormulaR1C1 = "11" - Замените ActiveCell.FormulaR1C1 = "=R[-3]C+R[-2]C+R[-1]C" на ActiveCell.FormulaR1C1 = "= R[-4]C+R[-3]C+ R[-2]С+Р[-1]С".
- Закройте редактор и запустите макрос. Как видите, из-за внесенных нами изменений была добавлена лишняя ячейка данных. Он также был включен в общий расчет.
- Если макрос слишком большой, его выполнение может занять много времени, но, внеся изменения в код вручную, мы можем ускорить процесс. Добавьте команду Application.ScreenUpdating = False. Это сэкономит вычислительные мощности, а значит, ускорит работу. Это достигается за счет отсутствия обновления экрана во время этапов расчета. Чтобы возобновить обновление после выполнения макроса, пишем в его конце команду Application.ScreenUpdating = True.
- Также добавим в начало кода команду Application.Calculation = xlCalculationManual, а в конец добавим Application.Calculation = xlCalculationAutomatic. Тем самым мы сначала отключаем автоматический пересчет результата после каждого изменения ячейки, а включаем его в конце макроса. Таким образом, Excel вычислит результат только один раз, а не будет постоянно его пересчитывать, что сэкономит время.
Вариант 2: Написание кода макроса с нуля
Опытные пользователи могут не только редактировать и оптимизировать записанные макросы, но и писать код с нуля.
- Откроется окно редактора VBE, которое уже было продемонстрировано в предыдущем варианте.
- Программист пишет туда код макроса вручную.
Как видите, макросы в Microsoft Excel позволяют значительно упростить выполнение рутинных и монотонных процессов. Но в большинстве случаев для этого больше подходят написанные вручную макросы, чем автоматически записанные действия. Кроме того, код можно оптимизировать через редактор VBE, чтобы ускорить процесс выполнения задачи.
