Медиаблог /

Как создать макрос в Excel: пошаговая инструкция с примерами VBA

4 сентября 2026

Как создать макрос в Excel: пошаговая инструкция с примерами VBA

Макрос в Excel — набор команд на языке VBA (Visual Basic for Applications), который выполняется автоматически по одному нажатию. Создаётся двумя способами: через макрорекордер без знания кода — или вручную в редакторе VBA. Перед началом нужно активировать вкладку «Разработчик» и выбрать уровень безопасности в настройках. Рекордер подходит для простых линейных задач, ручной VBA — когда нужна логика, циклы или интеграция с другими приложениями Office.

Диалог записи макроса на рабочем столе Excel

Макрос в Excel — что это такое простыми словами

Макрос — мини-программа внутри Excel: автоматически выполняемая последовательность VBA-команд. Принцип простой: вы один раз записываете нужные действия или пишете код, а потом запускаете их одним кликом сколько угодно раз.

image

Учитесь бесплатно за счёт государства

Экономия до 100 000 ₽ на любой программе

Выбрать курс

Представьте: каждый понедельник вы вручную форматируете отчёт — красите шапку, выравниваете столбцы, убираете пустые строки. Макрос делает то же самое за секунду. Создали один раз — работает бесконечно.

Макросы в Excel используют бухгалтеры (автоматизация отчётов), аналитики (обработка массивов данных), маркетологи (выгрузки и сортировка) и все, кто регулярно повторяет одни и те же операции в таблицах. Главный эффект — экономия времени и исключение ошибок ручного ввода.

Типовые задачи: что автоматизируют макросы

Макросы берут на себя рутину, которую не закрыть формулами:

  • форматирование ячеек — единый стиль шрифтов, цветов и границ по всему документу;
  • копирование данных — перенос диапазонов между листами или книгами;
  • сортировка и фильтрация по нескольким условиям одновременно;
  • создание диаграмм — одинаковые графики для разных наборов данных за один клик;
  • формирование сводных отчётов из нескольких источников.

Через ручной VBA-код возможности шире: управление Word, вставка диаграмм в PowerPoint, синхронизация с базами данных Access. Пользовательские функции доступны только через ручной код — рекордер их не записывает.

Как подключить макросы в Excel

По умолчанию макросы в Excel отключены политикой безопасности. Чтобы начать работу, потребуется два обязательных шага: добавить вкладку «Разработчик» на ленту и задать уровень разрешений в Центре управления безопасностью.

Шаг 1. Активируйте вкладку «Разработчик»

Вкладка Разработчик на ленте Microsoft Excel

Вкладка скрыта по умолчанию. Включите её так:

  1. Щёлкните правой кнопкой мыши по любому месту ленты.
  2. Выберите «Настроить ленту».
  3. В правом столбце «Основные вкладки» поставьте галочку напротив «Разработчик».
  4. Нажмите ОК.

На ленте появятся кнопки: «Запись макроса», «Макросы», «Visual Basic», «Относительные ссылки». Горячие клавиши для быстрого доступа: Alt+F11 открывает редактор VBA, Alt+F8 — диалог управления макросами.

Шаг 2. Задайте уровень разрешений для макросов

Путь: Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов.

Доступны четыре режима:

  • «Отключить все макросы без уведомления» — жёсткая блокировка, код не запустится;
  • «Отключить все макросы с уведомлением» — блокировка с запросом при каждом открытии файла;
  • «Отключить все, кроме макросов с цифровой подписью» — только доверенные издатели;
  • «Включить все макросы» — без ограничений, небезопасен для чужих файлов.

Рекомендуемый вариант — «с уведомлением»: Excel будет спрашивать разрешение перед каждым запуском, и вы сами решаете, доверять ли конкретному файлу.

Два способа создать макрос в Excel

Выбор способа зависит от сложности задачи и ваших знаний о VBA:

Параметр
Рекордер
Ручной VBA
Знание кода Не нужно Нужны основы
Сложность задач Простые, линейные Любая логика
Качество кода Избыточный Оптимальный

Способ 1 — Запись через макрорекордер

Пять шагов записи макроса в Excel — схема

Макрорекордер — инструмент автоматической записи: он переводит ваши действия в Excel в VBA-код. Вы ничего не пишете вручную.

Алгоритм:

  1. Вкладка «Разработчик» → группа «Код» → «Запись макроса».
  2. Задайте имя без пробелов — допустимо нижнее подчёркивание: Ввод_текста.
  3. При желании назначьте горячую клавишу: Ctrl+Shift+[буква].
  4. Нажмите ОК — запись началась.
  5. Выполните нужные действия в таблице.
  6. Вернитесь на вкладку «Разработчик» → «Остановить запись».

Пример: рекордер записал ввод слова «Итого» в ячейку A1 и сгенерировал такой код:

Sub ВводТекста()

Range(«A1»).Select

ActiveCell.FormulaR1C1 = «Итого»

Range(«A2»).Select

End Sub

Код рабочий, но избыточный — рекордер фиксирует каждое движение курсора. Для сложных сценариев его оптимизируют вручную.

Способ 2 — Написание VBA-кода вручную

Редактор VBA в Excel с компонентами интерфейса

Когда нужны условия, циклы или работа с внешними данными — пишите код в редакторе VBA напрямую.

Путь: Alt+F11 → меню «Вставка» → «Модуль» → введите код → Ctrl+S.

Базовая структура любого макроса:

Sub ИмяМакроса()

‘ Комментарий (апостроф — Excel его не выполняет)

‘ Ваши команды здесь

End Sub

Ключевые объекты VBA для работы с Excel:

  • Range(«A1:C3») — обращение к диапазону ячеек;
  • ActiveCell — текущая активная ячейка;
  • ActiveCell.Offset(1, 0) — смещение относительно активной ячейки;
  • Sheets(«Лист2») — обращение к конкретному листу.

Ручной код выбирают, когда нужны: проверки условий (If Then Else), перебор строк (For Each), пользовательские функции, обработка ошибок (On Error) и интеграция с другими приложениями Office.

Режимы записи: фиксированная и динамическая адресация

Перед записью через рекордер выберите режим адресации — он определяет, как макрос будет обращаться к ячейкам при каждом запуске.

Параметр
Абсолютная запись
Относительная запись
Адресация По точному адресу ячейки От текущей активной ячейки
Код-пример Range(«A2»).Select ActiveCell.Offset(1, 0).Select
Поведение Всегда одна и та же ячейка Перемещается относительно позиции
Включение по умолчанию Да Кнопка «Относительные ссылки» на вкладке «Разработчик»

Абсолютная запись подходит для фиксированных шаблонов, где данные всегда на одном месте. Относительная — для обработки списков переменной длины, когда нужно последовательно пройтись по строкам.

Границы возможностей макрорекордера

Рекордер пишет только линейный код — без логики и динамики. Всё, что требует условий или нестандартных сценариев, — за его пределами.

Задача
Рекордер
Решение через ручной VBA
Проверка условия (если значение > 0) If Then Else
Перебор всех строк таблицы For Each / Do While
Пользовательская функция Function…End Function
Работа с внешними файлами Open / QueryTable
Обработка ошибок On Error Resume Next
Управление Word или PowerPoint CreateObject(«Word.Application»)
Защищённые листы Sheet.Unprotect

Для однотипного форматирования рекордер справляется отлично. Для всего остального — нужен ручной код или оптимизация уже записанного.

Готовые примеры макросов с кодом VBA

Два рабочих примера с построчными комментариями. Откройте редактор VBA (Alt+F11 → Вставка → Модуль), скопируйте нужный Sub и запустите через Alt+F8.

Пример 1 — Автоформатирование заголовков таблицы

Готовый код макроса VBA в окне редактора Excel

Задача: выделить первую строку таблицы — жирный шрифт, белый текст, тёмно-синий фон.

Sub ФорматЗаголовков()

‘ Выбираем диапазон заголовков

Range(«A1:F1»).Select

Хотите сменить профессию или повысить квалификацию?

Федеральный проект «Активные меры содействия занятости» даёт возможность пройти обучение бесплатно за счёт государства

  • Программы от ведущих вузов России — от 2 месяцев
  • Удостоверение или диплом установленного образца
  • Центр карьеры: 7 500+ вакансий, помощь с трудоустройством
Оставить заявку
image

‘ Форматируем шрифт

With Selection.Font

.Bold = True ‘ Жирный

.Size = 12 ‘ Размер 12 пт

.Color = RGB(255, 255, 255) ‘ Белый текст

End With

‘ Задаём цвет заливки ячеек

With Selection.Interior

.Color = RGB(31, 73, 125) ‘ Тёмно-синий фон

End With

End Sub

Результат: запускайте макрос на любом листе — заголовки A1:F1 мгновенно получают единый стиль без ручного форматирования.

Пример 2 — Копирование данных на другой лист

Задача: перенести данные из «Лист1» на «Лист2» только значениями, без формул и форматирования.

Sub КопироватьДанные()

‘ Копируем диапазон с исходного листа

Sheets(«Лист1»).Range(«A1:D100»).Copy

‘ Вставляем только значения на целевой лист

Sheets(«Лист2»).Range(«A1»).PasteSpecial _

Paste:=xlPasteValues

‘ Снимаем «бегущую рамку» выделения

Application.CutCopyMode = False

End Sub

PasteSpecial с параметром xlPasteValues вставляет только данные — без формул. Это исключает случайные ссылки на ячейки исходного листа.

Как сохранить, запустить и удалить макрос

Диалог управления макросами Excel кнопки Выполнить Удалить

Три операции жизненного цикла: сохранение в правильном формате, запуск одним из нескольких способов и удаление. Диалог «Макросы» открывается через Alt+F8 или кнопку «Макросы» на вкладке «Разработчик».

Сохранение файла с макросом в формат XLSM

Предупреждение Excel при сохранении файла xlsm в xlsx

Стандартный формат .xlsx не поддерживает VBA-код. При попытке сохранить файл с макросом в .xlsx Excel предупреждает: «Следующие компоненты этой книги не могут быть сохранены в книге без поддержки макросов». Если нажать «Да» — весь код удаляется без возможности восстановления.

Правильный путь: Файл → Сохранить как → «Книга Excel с поддержкой макросов (*.xlsm)».

Именно файл .xlsm хранит VBA-код вместе с данными таблицы и передаётся коллегам для повторного использования макросов.

Запуск и редактирование макроса

Три варианта запуска:

  • Alt+F8 → выбрать имя → «Выполнить»;
  • Ctrl+Shift+[буква] — если горячая клавиша назначена при записи;
  • кнопка на листе — через «Разработчик» → «Вставить» → «Кнопка (элемент управления формы)».

Для редактирования: Alt+F11 → в Project Explorer найдите нужный модуль → двойной клик → правьте код → Ctrl+S. После каждого изменения проверяйте результат на тестовых данных.

Удаление макроса

Путь через диалог: Alt+F8 → выбрать макрос из списка → «Удалить» → подтвердить.

Альтернатива: в редакторе VBA (Alt+F11) откройте модуль, найдите нужную подпрограмму Sub и удалите её вручную. Если весь модуль больше не нужен — кликните правой кнопкой в Project Explorer → «Удалить модуль».

Удаление необратимо. Перед операцией сделайте резервную копию .xlsm-файла.

Хотите автоматизировать работу в Excel и освоить VBA системно? В рамках федерального проекта «Активные меры содействия занятости» можно пройти обучение по аналитике данных и работе с таблицами — онлайн, бесплатно, без отрыва от основной работы. Смотрите каталог доступных программ и выбирайте подходящее направление.

Часто задаваемые вопросы

Что такое макрос в Excel простыми словами?

Макрос — автоматически выполняемый набор команд на языке VBA. Вы один раз записываете нужные действия через макрорекордер или пишете код вручную, а затем запускаете их одной кнопкой сколько угодно раз. Экономит время на форматировании, копировании данных, формировании отчётов и других повторяющихся операциях.

Чем файл .xlsm отличается от .xlsx?

XLSM — формат Excel с поддержкой макросов. При сохранении файла с макросом в формате .xlsx Excel автоматически удаляет весь VBA-код без возможности восстановления. Всегда сохраняйте файлы с макросами через «Сохранить как» → «Книга Excel с поддержкой макросов (*.xlsm)».

Что нельзя сделать через макрорекордер?

Рекордер не поддерживает условную логику (If Then Else), циклы (For, While), пользовательские функции, работу с внешними источниками данных, управление другими приложениями Office и обработку ошибок. Для этих задач пишите VBA-код вручную в редакторе, который открывается через Alt+F11.

Чем абсолютная запись макроса отличается от относительной?

Абсолютная запись всегда обращается к конкретной ячейке: Range(«A2»).Select. Относительная перемещается от активной ячейки: ActiveCell.Offset(1, 0). Абсолютная включена по умолчанию; для относительной нажмите кнопку «Относительные ссылки» на вкладке «Разработчик» перед записью.

Как открыть редактор VBA в Excel?

Нажмите Alt+F11 — откроется редактор Visual Basic for Applications. Альтернатива: вкладка «Разработчик» → кнопка «Visual Basic». В редакторе через Project Explorer найдите нужный модуль и откройте его двойным кликом. Именно здесь пишется и редактируется весь VBA-код.

Безопасно ли включать макросы в Excel?

Макросы из ненадёжных источников могут содержать вредоносный код. Оптимальный режим — «Отключить все макросы с уведомлением»: перед каждым запуском Excel запрашивает подтверждение. Не используйте режим «Включить все» для файлов из интернета или от незнакомых отправителей.

Где взять готовые макросы или шпаргалку?

В разделе «Готовые примеры» этой статьи — два рабочих макроса с кодом VBA и построчными комментариями. Скопируйте в редактор (Alt+F11 → Вставка → Модуль) и адаптируйте под свои задачи. Для системного изучения VBA и Excel смотрите ответ на последний вопрос этого раздела.

Как отключить макросы в Excel?

Откройте Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов. Выберите «Отключить все макросы без уведомления». После следующего запуска Excel все макросы в открываемых файлах будут заблокированы автоматически.

Из чего состоит макрос в Excel?

Каждый макрос — подпрограмма VBA: Sub ИмяМакроса() … End Sub. Внутри — операторы: выбор диапазона (Range, ActiveCell), ввод данных, форматирование. Строки после апострофа (‘) — комментарии, Excel их не выполняет. Один модуль может содержать несколько подпрограмм Sub.

Где пройти обучение макросам и VBA в Excel бесплатно?

Программа «Excel. Системный аналитик: моделирование данных в табличных процессорах» (72 часа, онлайн, занятия 1–2 раза в неделю) охватывает макросы, VBA и аналитику данных. Доступна бесплатно для жителей России в рамках национального проекта «Кадры» — осталось 55 мест. Подробнее — в каталоге программ ТГУ.

Подайте заявку —
забронируйте место в группе

45 000 мест на 2026 год. Бесплатное обучение по федеральному проекту «Активные меры содействия занятости»

  • Онлайн
  • От 2 месяцев
  • Бесплатно
  • Диплом
Учиться бесплатно
icon