Как записать макрос в Excel — пошаговое руководство

Макросы — это последовательности записанных действий, которые можно выполнить одной командой. Они экономят время при регулярных и рутинных задачах. В Excel макросы поддерживаются из коробки. Даже без навыков программирования вы можете записать макрос: включите запись, выполните действия, остановите запись.
В этом руководстве вы найдёте подробные шаги по записи макроса и полезные дополнения: советы по безопасности, шаблон процесса, критерии приёмки, тесты и примеры кода VBA.
Что такое макрос и зачем он нужен
Определение: макрос — это последовательность действий, записанная в Excel и выполняемая автоматически. Одной строкой: макросы ускоряют повторяющуюся работу.
Преимущества:
- Экономия времени при рутинных операциях.
- Снижение ошибок ручного ввода при повторных процедурах.
- Возможность создания простых форм и автоматической отправки писем (при наличии интеграций).
Ограничения:
- Записанные макросы воспроизводят клики и ввод; сложную логику удобнее писать вручную в VBA.
- Макросы могут представлять риск безопасности, если код получен из ненадёжного источника.
Как записать макрос в Excel
Ниже — пошаговая инструкция. Заголовки соответствуют действиям в интерфейсе Excel.
1. Включите вкладку Разработчик
Вкладка «Разработчик» нужна для записи и редактирования макросов. Она не включена по умолчанию.
Откройте File > Options > Customize Ribbon. В колонке Customize the Ribbon выберите Main Tabs, поставьте галочку у Developer и нажмите OK.
Вкладка появится в ленте и останется включённой, пока вы не отключите её таким же способом.
2. Нажмите Record Macro
Перейдите на вкладку Разработчик. В группе Code нажмите Record Macro. Откроется диалоговое окно, где нужно ввести параметры макроса.
Альтернатива: нажмите сочетание клавиш Alt + T + M + R.
3. Введите имя макроса
Поле Macro name должно содержать имя без пробелов. Первым символом должна быть буква; далее допускаются буквы, цифры и подчёркивания. Не используйте имена, совпадающие с адресами ячеек (например, A1).
Совет: давайте осмысленные имена, например CleanUp_Budget или ПреобразоватьДаты.
4. Назначьте сочетание клавиш
В поле Shortcut key нажмите желаемую букву. Обычно сочетание формируется с Ctrl или Ctrl+Shift.
Важно: назначенное сочетание заменяет встроенные сочетания Excel. Выберите комбинацию с Shift (Ctrl+Shift+<буква>), чтобы избежать конфликтов с системными горячими клавишами.
5. Выберите, где хранить макрос
В выпадающем списке Store macro in выберите место хранения:
- Personal Macro Workbook — макрос доступен во всех книгах. Сохраняется в скрытом PERSONAL.XLSB.
- New Workbook — макрос будет доступен в новой книге, которую вы создадите в этой сессии.
- This Workbook — макрос останется только в текущей книге.
Выбор зависит от потребности: если автоматизация нужна во многих файлах — используйте Personal Macro Workbook.
6. Добавьте описание
Поле Description полезно для пояснения назначения макроса. Описание не обязательно, но помогает в будущем понять назначение и ограничения макроса.
7. Нажмите OK и начните запись
После подтверждения начнётся запись. С этого момента Excel фиксирует ваши действия.
8. Выполните действия, которые нужно автоматизировать
Выполните все шаги, которые должны повторяться: ввод данных, форматирование, сортировка, фильтрация, импорт данных и т. п.
Параметр Use Relative References на вкладке Разработчик переключает запись в относительные или абсолютные ссылки. Если включён режим относительных ссылок, действия записываются относительно начальной клетки. Это удобно, когда макрос должен работать из разных позиций таблицы.
Пример: при записи перехода от A1 к A3 с относительными ссылками выполнение макроса из J6 приведёт курсор в J8.
Если вы ошиблись во время записи, остановите запись и начните заново. Альтернативно исправьте код VBA вручную.
9. Остановите запись
Вернитесь на вкладку Разработчик и нажмите Stop Recording в группе Code.
Альтернатива: снова используйте Alt + T + M + R. Макрос успешно сохранён.
Как запускать, редактировать и удалять макросы
Откройте окно Macros (вкладка Разработчик → Macros или Alt + F8). Здесь можно запустить, отредактировать или удалить макрос.
Если при редактировании появляется ошибка Cannot edit a macro on a hidden workbook, значит макрос хранится в PERSONAL.XLSB — скрытой личной книге.
Чтобы открыть PERSONAL.XLSB: вкладка View → Unhide → выберите PERSONAL.XLSB → OK.
После этого вы сможете редактировать или удалять макрос.
Пример простого макроса в VBA
Ниже минимальный пример макроса, который выделяет заголовки в первой строке и делает их полужирными:
Sub MakeHeadersBold()
Rows(1).Font.Bold = True
End SubВставьте этот код через Visual Basic Editor (Alt + F11) в модуль книги и сохраните.
Безопасность и разрешения
Важно: макросы могут запускать произвольный код. Открывайте файлы с макросами только если доверяете источнику.
Рекомендации:
- В настройках макросов (File → Options → Trust Center → Trust Center Settings → Macro Settings) выбирайте опцию, которая подходит вашей политике безопасности. Для большинства пользователей безопаснее оставлять макросы отключёнными и разрешать запуск только для доверенных документов.
- Подписывайте макросы цифровой подписью в корпоративной среде.
- Не храните пароли в коде макроса.
Когда макросы не подходят
Контрпримеры:
- Для сложной логики и большого объёма данных запись макроса создаст громоздкий и неэффективный код. В таких случаях лучше писать чистый VBA или использовать Power Query / Power Automate.
- Если нужно многопользовательское управление версиями и журнал действий, макросы в личной книге неудобны. Рассмотрите хранение кода в репозитории или перенос логики в серверную систему.
Альтернативные подходы
- Power Query — для трансформации и объединения данных без макросов.
- Power Automate — для автоматизации связей между приложениями, включая отправку писем и загрузку в облако.
- Office Scripts (в браузерном Excel Online) — современная альтернатива для автоматизации в облаке.
Чек-листы по ролям
Чек-лист для пользователя-аналитика:
- Определить повторяющиеся шаги.
- Проверить, можно ли их реализовать через Power Query.
- Записать макрос с относительными ссылками (если нужно применять к разным участкам).
- Тестировать на копии данных.
Чек-лист для администратора IT:
- Установить политику макросов в Trust Center.
- Настроить цифровые подписи для корпоративных макросов.
- Обеспечить резервное копирование PERSONAL.XLSB.
Чек-лист для менеджера качества:
- Проверить соответствие макроса требованиям.
- Оценить возможные ошибки при некорректных входных данных.
- Утвердить критерии приёмки.
Процесс создания макроса: мини-методология
- Анализ: опишите шаги и ожидаемый результат.
- Запись: используйте режим записи макроса, выбрав правильное место хранения.
- Рефакторинг: откройте код в VBA Editor и оптимизируйте (удалите лишние переходы или использование абсолютных ссылок).
- Тестирование: выполните тест-кейсы на нескольких наборах данных.
- Документирование: заполните описание и добавьте комментарии в код.
- Развертывание: распределите макрос по нужным пользователям и настройте бэкап.
Критерии приёмки
- Макрос выполняет все шаги, описанные в задаче.
- Макрос корректно работает при ожидаемых вариациях входных данных.
- Макрос не вызывает ошибок времени выполнения на тестовых наборах.
- Код документации и комментарии присутствуют.
- Для корпоративного применения макрос подписан цифровой подписью.
Тестовые случаи и приёмочные тесты
- Базовый набор: исходная таблица с ожидаемой структурой — макрос выполняется без ошибок.
- Случай с пустыми строками: макрос корректно пропускает пустые строки или обрабатывает их по правилам.
- Случай с дополнительными столбцами: макрос не затирает данные вне области обработки.
- Негативный тест: повреждённые данные — макрос возвращает понятное сообщение об ошибке.
Критерий успеха: все тесты проходят без ручной корректировки данных.
Безопасное хранение и бэкап
- Personal Macro Workbook хранится в %appdata% для Windows; регулярно делайте резервную копию PERSONAL.XLSB.
- Храните критичные макросы в централизации (репозиторий), а не в локальных книгах пользователей.
Шаблон SOP для создания макроса
- Создать копию рабочей книги для разработки.
- Включить вкладку Разработчик.
- Записать макрос, сохранив в This Workbook или Personal Macro Workbook в зависимости от назначения.
- Открыть код в VBA Editor, оптимизировать и добавить комментарии.
- Создать тестовый набор данных и выполнить тесты.
- Обновить документацию и описание макроса.
- Подписать макрос и распространить по инструкциям IT.
- Сделать бэкап и записать версию.
Как отлаживать макросы
- Используйте точки останова в редакторе VBA и шаг за шагом выполняйте код (F8).
- Логируйте ключевые переменные: Debug.Print или запись в отдельный лист логов.
- Проверяйте обработку ошибок: включите конструкцию On Error и аккуратно обрабатывайте исключения.
Советы по оптимизации кода после записи
- Удаляйте неиспользуемые Select и Activate. Прямое обращение к объектам быстрее и надёжнее, например: Worksheets(“Лист1”).Range(“A1”).Value = 1 вместо Selection.Value = 1.
- Прячьте экран обновления: Application.ScreenUpdating = False в начале и True в конце.
- Отключайте автоматическую перерасчётность, если код выполняет много операций: Application.Calculation = xlCalculationManual и восстановите значение в конце.
Пример улучшенного фрагмента VBA
Sub CleanAndFormat()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Data")
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
On Error GoTo Cleanup
ws.Range("A1:Z1000").RemoveDuplicates Columns:=Array(1,2), Header:=xlYes
ws.Range("A1:Z1").Font.Bold = True
Cleanup:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
If Err.Number <> 0 Then MsgBox "Ошибка: " & Err.Description
End SubСовместимость и миграция
- Макросы VBA работают в настольных версиях Excel для Windows и Mac (с частичными отличиями). Excel Online не поддерживает традиционные макросы VBA — используйте Office Scripts для браузерной автоматизации.
- При переносе на другую версию Excel проверьте совместимость API и поведение листов.
Риски и меры по снижению
Риски:
- Выполнение вредоносного кода при открытии файлов с макросами.
- Потеря данных при некорректной автоматизации.
Митигаторы:
- Политика открытия макросов и цифровые подписи.
- Тестирование макросов на резервных копиях.
- Ограничение доступа к PERSONAL.XLSB и корпоративным макросам.
Краткий глоссарий
- VBA — Visual Basic for Applications, язык макросов Excel.
- PERSONAL.XLSB — скрытая рабочая книга, где хранятся личные макросы.
- Relative References — запись действий относительно текущей позиции.
Итог и что дальше
Макросы — простой способ автоматизировать рутинные действия в Excel. Начните с записи простых задач, затем оптимизируйте код в VBA. Для корпоративных сценариев внедрите политику безопасности, цифровую подпись и процесс контроля версий.
Важно: всегда тестируйте макросы на копиях данных и проверяйте источник файлов с макросами.
Сводка:
- Включите вкладку Разработчик.
- Запишите макрос, присвойте имя и место хранения.
- Тестируйте, документируйте и подписывайте важные макросы.
Если нужно, могу подготовить готовый шаблон макроса под ваш сценарий или чек-лист для командного внедрения.
Похожие материалы
Анализ использования диска в Ubuntu с ncdu
Отключить уведомления на Android — режим Не беспокоить
Как безопасно купить б/у MacBook
Планшет Android как дисплей для Raspberry Pi
Focus assist в Windows 11 — включение и настройка