Макросы в Excel: как включить, записать и запустить первый макрос

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

Разбираем пять способов запуска, что делать, если Excel заблокировал макросы, и три готовых примера кода VBA с пояснениями.

Статью написал:
Ваня Буявец, продюсер, основатель Checkroi
Ваня Буявец
Основатель Checkroi, продюсер, эксперт в выборе онлайн-курсов
Все 2879 статей автора Подписаться на Телеграм-канал
Одобрено экспертом:
Наташа Буявец, основатель Checkroi, эксперт по онлайн-курсам
Наташа Буявец
Основательница Checkroi, продюсер Youtube-каналов, эксперт по онлайн-курсам
Все 3533 экспертных мнения Подписаться на Телеграм-канал
Обложка: Макросы в Excel: как включить, записать и запустить первый макрос

Макрос в Excel — записанная последовательность действий, которую программа повторяет по одной кнопке или сочетанию клавиш. Чтобы создать первый макрос, включите вкладку «Разработчик» («Файл» → «Параметры» → «Настроить ленту»), нажмите «Запись макроса», проделайте нужные действия и нажмите «Остановить запись». Книгу сохраните в формате XLSM, иначе записанное пропадёт после закрытия.

Программировать для этого не нужно: Excel сам переводит ваши щелчки в код на языке VBA. Код понадобится позже, когда захочется научить макрос тому, что запись не умеет, например циклам и проверкам условий. Если вы только осваиваете программу, сначала пролистайте приёмы быстрой работы в Excel: часть рутины снимают горячие клавиши, и макрос там не нужен.

Ниже по порядку: как включить вкладку, записать и сохранить макрос, пять способов его запустить, что делать с предупреждением безопасности и как написать макрос на VBA с нуля по трём готовым примерам.

CheckroiCheckroiПодборка курсов по VBA37 курсов • 15 школСравните цены, школы, программу и найдите выгодные предложения по обучениюСравнить→

Что умеет макрос и когда он окупается

Рой запускает макрос в таблице одной клавишей

Макрос полезен там, где вы раз за разом делаете одно и то же: каждую неделю чистите выгрузку из 1С, красите просроченные строки, собираете отчёт в одном формате. Справка Microsoft приводит похожий пример: ежемесячный отчёт, где имена клиентов с просроченными счетами нужно выделить красным и полужирным.

Задача Макрос нужен? Почему
Оформить шапку выгрузки одинаково каждую неделю Да Десяток щелчков превращается в одно сочетание клавиш
Удалить пустые строки в длинном списке Да Вручную долго, а цикл на VBA справится за секунды
Подсветить строки по условию в одной таблице Чаще нет Условное форматирование работает без кода и пересчитывается само
Найти и убрать повторы Чаще нет Есть встроенная кнопка, см. как удалить дубликаты в Excel
Разовая правка файла Нет Запись и проверка займут больше времени, чем сама правка

Простое правило: если задача повторяется хотя бы раз в неделю и состоит из пяти и больше шагов, макрос стоит записать.

Как включить вкладку «Разработчик»

Все команды для макросов живут на вкладке «Разработчик», а по умолчанию она скрыта. Включается один раз, дальше остаётся на ленте.

  1. Откройте «Файл» → «Параметры».
  2. Выберите раздел «Настроить ленту».
  3. В правом списке «Основные вкладки» поставьте флажок «Разработчик» и нажмите «ОК».

На Mac путь другой: «Excel» → «Параметры» → «Лента и панели инструментов», дальше тот же флажок. Оба пути описаны в справке Microsoft о том, как показать вкладку «Разработчик».

Канал основателя Checkroi Вани Буявца3 700 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединиться

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

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

  1. На вкладке «Разработчик» в группе «Код» нажмите «Запись макроса». Того же можно добиться клавишами Alt, T, M, R, нажатыми по очереди.
  2. В поле «Имя макроса» введите понятное название. Первым символом должна быть буква, пробелы нельзя, слова разделяют подчёркиванием: Оформить_шапку.
  3. В поле «Сочетание клавиш» при желании впишите букву. Строчная даёт Ctrl+буква, прописная даёт Ctrl+Shift+буква.
  4. В списке «Сохранить в» выберите «Эта книга» или «Личная книга макросов», про разницу ниже.
  5. Коротко опишите, что делает макрос, в поле «Описание» и нажмите «ОК». Запись пошла.
  6. Выполните действия: выделите шапку, сделайте шрифт полужирным, залейте ячейки цветом, подгоните ширину столбцов.
  7. Нажмите «Остановить запись» там же, в группе «Код».

Порядок и названия полей сверены со справкой «Автоматизация задач с помощью средства записи макросов».

Сочетание клавиш макроса перекрывает стандартное, пока открыта книга с ним. Назначите Ctrl+C, и копирование в этой книге перестанет работать. Берите буквы, которые не заняты, или вариант с Shift.

Эта книга или личная книга макросов

«Эта книга» означает, что макрос живёт внутри файла и уедет вместе с ним к коллеге. Так стоит делать, если макрос нужен под конкретный отчёт.

«Личная книга макросов» — скрытый файл Personal.xlsb на вашем компьютере. Excel открывает его при каждом запуске, поэтому макрос оттуда доступен в любой книге. Так удобно хранить универсальные вещи вроде «оформить шапку» или «удалить пустые строки». Подробности есть в справке про личную книгу макросов.

Абсолютные и относительные ссылки

По умолчанию макрос запоминает точные адреса. Записали форматирование ячейки B5, и при запуске он снова пойдёт в B5, где бы ни стоял курсор.

Если макрос должен работать от текущей ячейки, перед записью нажмите на вкладке «Разработчик» кнопку «Относительные ссылки». Тогда Excel запишет смещения вида «на две строки ниже», а не адреса.

  • абсолютный режим подходит для отчёта, где шапка всегда в первой строке;
  • относительный режим нужен, когда вы сами ставите курсор и хотите обработать «эту строку и три следующих».

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

Как сохранить книгу с макросом

Обычный формат XLSX код не хранит. Если сохранить в нём книгу с макросом, Excel предупредит, что макросы в такой книге не сохранятся, и после закрытия их не будет.

  1. «Файл» → «Сохранить как».
  2. В списке типов выберите «Книга Excel с поддержкой макросов (*.xlsm)».
  3. Сохраните. Расширение у файла сменится на .xlsm.

XLSM в справке Microsoft описан как формат на основе XML, в котором можно хранить код макросов VBA. Чем он отличается от XLSX, XLSB и шаблонов, мы разбирали в статье про форматы файлов Excel.

CheckroiCheckroiПодборка курсов по Microsoft Excel687 курсов • 64 школыСравните цены, школы, программу и найдите выгодные предложения по обучениюСравнить→

Как запустить макрос: 5 способов

Основной способ один на все случаи: вкладка «Разработчик» → «Макросы» или Alt+F8, выбрать макрос в списке и нажать «Выполнить». Остальные удобнее для ежедневной работы.

Способ Как настроить Кому удобно
Окно «Макрос» Alt+F8 → выбрать → «Выполнить» Всем, ничего настраивать не нужно
Сочетание клавиш Alt+F8 → выбрать макрос → «Параметры» → вписать букву Тем, кто запускает макрос по много раз в день
Кнопка на листе Нарисовать фигуру, щёлкнуть по ней правой кнопкой → «Назначить макрос» Коллегам, которые не знают про Alt+F8
Панель быстрого доступа или лента Добавить команду макроса в панель или свою группу на ленте Для макросов из личной книги
При открытии книги Процедура Workbook_Open в модуле «ЭтаКнига» Когда отчёт должен обновляться сам

Все пять вариантов перечислены в справке «Запуск макроса». Там же есть кнопка «Шаг с заходом»: редактор откроет первую строку кода, и клавишей F8 можно пройти макрос построчно. Так проще всего понять, где он ошибается.

Действие макроса нельзя отменить через Ctrl+Z. Перед первым запуском сохраните книгу, а ещё лучше проверьте макрос на копии файла.

Как включить макросы в Excel, если они заблокированы

Рой открывает замок на экране с таблицей

Excel по умолчанию не запускает макросы из чужих файлов молча. Что именно вы увидите, зависит от того, откуда пришёл файл.

Жёлтая панель «Предупреждение системы безопасности»

Это обычный случай для файла, который лежит у вас на диске или в общей папке. Над таблицей появляется полоса с кнопкой «Включить содержимое».

  1. Нажмите «Включить содержимое».
  2. Если Excel спросит, сделать ли документ надёжным, ответьте «Да». Тогда при следующем открытии вопроса не будет.

Microsoft отдельно предупреждает: не включайте макросы, если не знаете, что они делают. Чтобы просто посмотреть таблицу, включать их не нужно.

Красная плашка «Риск безопасности»

Так Excel реагирует на файл из интернета или из вложения письма. Кнопки «Включить содержимое» на такой плашке нет: Windows ставит на скачанный файл метку «из Интернета», и Office блокирует в нём макросы. Такая блокировка стала поведением по умолчанию в 2022 году: в актуальном канале Microsoft 365 её начали разворачивать с версии 2206 27 июля 2022 года. Сроки по другим каналам обновления есть в документации Microsoft Learn.

Если источнику вы доверяете, снимите метку:

  1. Закройте файл в Excel.
  2. Щёлкните по нему правой кнопкой в проводнике → «Свойства».
  3. На вкладке «Общие» поставьте флажок «Разблокировать» и нажмите «ОК».
  4. Откройте файл снова: появится обычная жёлтая панель.

Параметры в центре управления безопасностью

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

  • «Отключить макросы VBA без уведомления» — макросы не работают, и Excel об этом не сообщает;
  • «Отключить макросы VBA с уведомлением» — при нём и появляется жёлтая панель, для большинства это самый разумный выбор;
  • «Отключить макросы VBA, за исключением макросов с цифровой подписью» — для компаний, где макросы подписывает ИТ-отдел;
  • «Включить макросы VBA (не рекомендуется…)» — запускает всё подряд, включая вредоносный код из писем.

Последний вариант соблазнительно включить, чтобы предупреждения не мешали. Делать так не стоит. Если ставили его временно, чтобы отладить свой макрос, после работы верните настройку с уведомлением. На рабочем компьютере эти пункты бывают серыми: параметры закрыл администратор, и поменять их может только он.

Ваня БуявецКанал основателя Checkroi Вани БуявцаЗабирайте промпты и обучение по нейросетям в моём Телеграм-каналеБольше 3 700 человек уже применяют Claude Code, ChatGPT и другие нейросети в работе, учёбе, бизнесе и жизниПерейти в канал

Как написать макрос на VBA: редактор и 3 примера

Редактор Visual Basic открывается клавишами Alt+F11 или кнопкой «Visual Basic» на вкладке «Разработчик». Слева окно проекта со списком открытых книг и модулей, справа код.

Проще всего получить модуль под свой код так: запишите любой короткий макрос, Excel сам создаст модуль Module1. Дальше Alt+F8 → выбрать этот макрос → «Изменить», и редактор откроет его. Вставьте пример ниже под последней строкой End Sub, вернитесь в Excel и запустите через Alt+F8.

Код в примерах сверен с справочником объектной модели Excel. Ключевые слова VBA пишутся только по-английски, а имена листов в кавычках остаются русскими. Если после примеров захочется писать такие вещи самостоятельно, посмотрите курсы по VBA: там разбирают переменные, циклы и обработку ошибок.

Пример 1: оформить шапку таблицы

Делает первую строку полужирной, заливает её голубым и подгоняет ширину столбцов A–E.

Sub FormatHeader()
    With ActiveSheet.Range("A1:E1")
        .Font.Bold = True
        .Interior.Color = RGB(221, 235, 247)
    End With
    ActiveSheet.Columns("A:E").AutoFit
End Sub

Пример 2: выделить просроченные строки

В столбце A имя клиента, в столбце C срок оплаты. Макрос проходит все строки со второй до последней заполненной и красит имя красным, если срок уже прошёл.

Sub MarkOverdue()
    Dim lastRow As Long, r As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For r = 2 To lastRow
        If IsDate(Cells(r, 3).Value) Then
            If Cells(r, 3).Value < Date Then
                Cells(r, 1).Font.Color = RGB(192, 0, 0)
                Cells(r, 1).Font.Bold = True
            End If
        End If
    Next r
End Sub

Для одной таблицы ту же подсветку можно сделать без кода, условным форматированием с формулой: логика там та же, что у функции ЕСЛИ. Макрос выигрывает, когда подсветку нужно повторять в каждой новой выгрузке.

Без проверки IsDate макрос ошибётся на пустых ячейках. Пустую ячейку VBA сравнивает как ноль, поэтому строки без даты тоже окажутся «просроченными».

Пример 3: удалить пустые строки

Идёт снизу вверх и удаляет строки, где нет ни одного значения.

Sub DeleteEmptyRows()
    Dim lastRow As Long, r As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For r = lastRow To 2 Step -1
        If WorksheetFunction.CountA(Rows(r)) = 0 Then
            Rows(r).Delete
        End If
    Next r
End Sub

Почему снизу: если удалять сверху, после каждого удаления строки сдвигаются вверх, и цикл перескакивает через соседнюю пустую. С Step -1 такого не бывает. Учтите, что CountA считает заполненной ячейку с формулой, которая возвращает пустой текст, поэтому такие строки макрос оставит.

Последнюю строку макрос ищет по столбцу A. Если в A бывают пропуски, а в B данные есть всегда, поменяйте 1 на 2 в строке с lastRow.

Как запустить макрос при открытии книги

В окне проекта дважды щёлкните объект «ЭтаКнига» (ThisWorkbook) и вставьте процедуру. Справка Microsoft даёт такой пример: при открытии книга показывает текущую дату и пишет её в A1.

Private Sub Workbook_Open()
    MsgBox Date
    Worksheets("Лист1").Range("A1").Value = Date
End Sub

В русской версии справки этот код переведён вместе с ключевыми словами («Листы», «Диапазон», «Значение»). Так он не заработает: VBA понимает только английские имена объектов.

Частые ошибки с макросами

Клавиатура, блокнот с чек-листом и ноутбук с таблицей на столе
Симптом Причина Что сделать
После закрытия файла макрос исчез Книга сохранена как XLSX Записать заново и сохранить как XLSM
Кнопка «Макросы» есть, а список пуст Макрос лежал в другой книге или в личной книге, которая не открылась Открыть файл с макросом и в окне «Макрос» переключить список на все открытые книги
Макрос обрабатывает старый диапазон, новые строки пропускает При записи сохранились точные адреса A1:A100 Включить «Относительные ссылки» или искать последнюю строку кодом, как в примерах выше
Ошибка компиляции на строке с «Листы(…)» Код скопирован из перевода, где ключевые слова русские Заменить на Worksheets, Range, Value
Нет кнопки «Включить содержимое» Файл из интернета, сработала метка «Свойства» → «Разблокировать», как описано выше
В браузере макрос не запускается Excel в Интернете открывает XLSM, но макросы в окне браузера не выполняет Открыть файл в настольном Excel

Про возможности браузерной версии подробнее в статье Excel онлайн бесплатно. Для веба у Microsoft есть другой механизм, сценарии Office на TypeScript на вкладке «Автоматизация», но он доступен не во всех лицензиях Microsoft 365.

Макросы в Р7-Офис и МойОфис

В марте 2022 года Microsoft приостановила продажи новых продуктов в России. Установленный Excel продолжает работать, но многие компании переходят на российские офисные пакеты. Макросы есть и там, только язык другой, и код VBA напрямую не перенесётся.

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

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

Записать макрос можно за десять минут по этой инструкции. Писать на VBA так, чтобы макрос не ломался на новой выгрузке, учатся дольше: переменные, обработка ошибок, работа с несколькими книгами. Если Excel для вас рабочий инструмент, а не повод открыть файл раз в месяц, такой навык окупается быстро. Подробнее о том, кому он нужен, мы писали в материале про специалиста по Excel.

Ниже подборка курсов по VBA из нашего каталога, а общие программы по таблицам собраны в разделе курсов по Excel.

КурсШколаСтоимость со скидкойВ рассрочкуДлитель­ностьОбзор курса от Checkroi
Программирование в VBA
Перейти на сайт курса
SF EducationSF Education9205 ₽767 ₽/мес.1 месяцОбзор курса
Профессия «Финансовый менеджер»
Перейти на сайт курса
SkillboxSkillbox90 514 ₽3848 ₽/мес.8 месяцевОбзор курса
ДО Профессия Финансовый менеджер 2.0
Перейти на сайт курса
GeekBrainsGeekBrains77 238 ₽2146 ₽/мес.3 месяцаОбзор курса
Профессия «Инвестиционный аналитик»
Перейти на сайт курса
SF EducationSF Education84 000 ₽4666 ₽/мес.7 месяцевОбзор курса
Профессия «Финансовый аналитик»
Перейти на сайт курса
SF EducationSF Education74 998 ₽4166 ₽/мес.4 месяцаОбзор курса

Больше программ — в полном каталоге курсов по VBA

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

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

Это записанная последовательность действий, которую Excel повторяет по команде: по сочетанию клавиш, кнопке на листе или из окна «Макрос». Внутри макрос хранится как код VBA, но для простых задач писать его не нужно: средство записи макросов само переводит ваши щелчки в код.

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

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

Почему макрос пропал после сохранения файла?

Скорее всего, книга сохранена в формате XLSX, а он код не хранит. Макрос нужно записать заново и сохранить книгу как «Книга Excel с поддержкой макросов (*.xlsm)». Подробнее о форматах — в статье про форматы файлов Excel.

Где найти макросы, которые уже есть в книге?

Нажмите Alt+F8: откроется окно «Макрос» со списком. Оттуда макрос можно запустить кнопкой «Выполнить» или открыть его код кнопкой «Изменить». Весь код целиком виден в редакторе Visual Basic, он открывается клавишами Alt+F11.

Работают ли макросы в Excel онлайн?

Нет. Excel в браузере открывает файлы XLSM, но макросы VBA в них не выполняет. Для автоматизации в веб-версии у Microsoft есть сценарии Office на вкладке «Автоматизация», но они входят не во все лицензии Microsoft 365.

Опасно ли включать макросы?

Свои макросы безопасны. Чужие из писем и скачанных файлов — частый способ занести вредоносный код, поэтому Microsoft советует не включать макросы, если вы не знаете, что они делают. Чтобы просто посмотреть таблицу, включать их не нужно.

Читайте Checkroi первым в Google
Добавьте Checkroi в избранные источники — и наши разборы курсов и обзоры школ будут показываться выше в вашей выдаче Google.
Оставить комментарий
0 комментариев
Форма комментария

Оставьте комментарий

Напишите, что думаете. Нам важно ваше мнение!