Анализ данных и автоматизация
Макросы в Excel: как записать повторяющиеся действия и включить вкладку «Разработчик»
Макросы в Excel — это записанные последовательности действий для тех, кто каждый день повторяет одно и то же оформление, перенос или печать. Средство записи переводит щелчки и ввод в код VBA, а запуск занимает одну команду. По справке Microsoft записанные шаги нельзя отменить[1], поэтому первую запись делают на копии книги. Ниже — пример, запись, запуск и границы инструмента.
Рутина выглядит одинаково: каждое утро выгрузка, шапку надо сделать жирной, столбцы подогнать по ширине, лист распечатать. Справка Microsoft описывает выход: средство записи макросов записывает все шаги в коде Visual Basic для приложений, и знать VBA для этого не нужно[1]. Десять щелчков превращаются в одну кнопку, а макрос в Excel выполняет их одинаково каждый раз.
Путь к первому макросу в экселе короткий. Сначала поймите задачу — какие действия повторяются без изменений. Затем выберите инструмент: запись подходит для одинаковых шагов, код — для условий и повторов по списку. Освойте основы — вкладку «Разработчик», запись, запуск и формат XLSM, — попробуйте записать шаги в тренажёре и примените макрос к своему отчёту. Главный риск — запустить чужой файл с макросами: справка советует запускать их только из файлов, которым вы доверяете[2].
Ключевые факты: макросы в Excel
- Средство записи переводит действия пользователя в код Visual Basic для приложений, знать язык для этого не нужно[1].
- В формате XLSX нельзя сохранить код макросов VBA, для макросов нужна книга XLSM[3].
- Вкладку «Разработчик» показывают через File → Options → Customize Ribbon и флажок Developer[4].
- Личная книга макросов Personal.xlsb отличается от текущей книги тем, что её макросы доступны в каждом сеансе[1].
- Справка Microsoft советует запускать макросы только из файлов, которым вы доверяете[2].
- Запись макросов описана для Excel 2016 и Excel 2019, а также для Windows- и Mac-версий Excel 2021, Excel 2024 и Microsoft 365[1].
Что такое макросы в Excel простыми словами
Макрос — это записанные действия, которые Excel повторяет одной командой или сочетанием клавиш. Макрорекордер регистрирует почти все действия пользователя — и ошибки тоже[1], поэтому перед записью шаги стоит отрепетировать. Внутри макроса хранится код Visual Basic для приложений, его можно открыть и поправить.
| Задача | Чем закрыть | Что учесть |
|---|---|---|
| оформление отчёта: шрифт, заливка, ширина столбцов | запись макроса | работает только на записанном диапазоне |
| перенос данных на другой лист | запись или код | при другой длине данных нужен код |
| печать нескольких листов по списку | код с повтором | запись не повторит шаги для каждого листа |
| подготовка еженедельной выгрузки | запрос Power Query | запрос обновляется без макроса |
Таблица типовых задач показывает главное: запись хороша для одинаковых шагов, а всё, что зависит от условий, требует правки кода. Макрос, записанный для диапазона, выполняется только для ячеек этого диапазона[1] — добавили строку в отчёт, и её оформление пропустится.
Справка о записи макросов относится к Excel для Microsoft 365, Excel 2024 и Excel 2021 — для Windows и для Mac, — а также к Excel 2019 и Excel 2016[1]. VBA встроен в настольные версии Excel и не требует особой лицензии, в отличие от Office Scripts[5].
Макросы в Excel полезны там, где действий много, а думать при этом не нужно: оформить шапку, вставить формулы в одни и те же ячейки, подготовить лист к печати. Записанный код открывают в редакторе Visual Basic: справка называет для этого сочетание ALT+F11[1]. Первые макросы обычно не требуют правки — достаточно, чтобы шаги в записи шли без лишних щелчков.
Похожий инструмент есть и в Google Таблицах: там макрос записывают через Extensions → Macros → Record macro, а внутри создаётся Apps Script, а не код VBA[6]. Перенести макрос из одной программы в другую без переписывания поэтому нельзя.
Разобравшись с назначением, переходим к подготовке: без вкладки «Разработчик» записывать нечего.
Как включить вкладку «Разработчик» и разрешить макросы
Макросы записывают только с вкладки «Разработчик», а запуск чужих файлов регулируют параметры безопасности[1]. Вкладка «Разработчик» по умолчанию скрыта[1], и её включают один раз.
- Откройте File → Options и перейдите на вкладку Customize Ribbon[4].
- Поставьте флажок Developer в списке справа.
- Нажмите OK — вкладка появится на ленте.
Так путь описан в английской справке, и она относит его к Excel для Microsoft 365, Excel для Microsoft 365 для Mac и Excel для Интернета[4]. В русском интерфейсе флажок называется по имени вкладки — «Разработчик».
Дальше — безопасность макросов. Если при открытии книги появилось предупреждение системы безопасности, кнопка «Включить содержимое» включает макросы и делает документ надёжным[7]. Общие правила задают в центре управления безопасностью: Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов[7].
| Параметр | Что произойдёт |
|---|---|
| Отключить все макросы без уведомления | макросы не запустятся, предупреждения не будет |
| Отключить все макросы с помощью уведомления | появится предупреждение с кнопкой включения |
| Отключение всех макросов, кроме макросов с цифровой подписью | запустятся только подписанные |
| Включить все макросы | справка помечает вариант как не рекомендуемый |
Файл из интернета или вложение почты Windows помечает меткой Mark of the Web, и Excel показывает красную плашку Security Risk без кнопки включения[8]. Разблокируют такой файл в его свойствах: правой кнопкой → Properties → флажок Unblock на вкладке General[8]. Для Excel в канале Current Channel блокировка пришла с версией 2206[8], и она касается только Office в Windows, не затрагивая Mac и веб-версию[8].
Если макросы нужны постоянно, справка советует не включать их для каждого файла по отдельности, а завести надёжное расположение для доверенных документов[7]. Книги из этой папки центр управления безопасностью не проверяет.
Однако включённая вкладка — только подготовка: сама запись устроена иначе, чем кажется, и требует порядка в шагах.
Как записать макрос по шагам и сохранить книгу в XLSM
Запись макроса начинают кнопкой «Запись макроса» в группе «Код» на ленте[1]; справка называет и клавиши ALT+T+M+R. Порядок такой:
- Нажмите «Запись макроса» и задайте имя.
- Первым символом имени макроса должна быть буква, дальше допустимы буквы, цифры и подчёркивания, пробелы — нет[1].
- При желании назначьте букву в поле «Сочетание клавиш».
- В списке «Сохранить в» оставьте «Эта книга» или выберите «Личная книга макросов».
- Нажмите ОК, выполните действия и остановите запись кнопкой в группе «Код».
Сочетание клавиш выбирайте с оглядкой: занятая буква перекрывает встроенное сочетание Excel, пока книга открыта[1]. Личная книга макросов отличается от текущей книги тем, что хранит макрос в скрытом файле Personal.xlsb и даёт его в каждом сеансе[1]. Описание к макросу необязательно, но справка его рекомендует: через месяц по описанию проще понять, какой макрос что делает[1].
Сохранение решает, переживёт ли макрос закрытие файла. Если сохранить книгу как XLSX, код пропадёт: в этом формате нельзя сохранять код макросов VBA[3]. Нужен формат XLSM — он хранит и код VBA, и листы макросов Excel 4.0[3].
Перед записью закройте лишние книги, выделите нужный лист и пройдите шаги один раз без записи. Чем меньше случайных щелчков попадёт в макрос, тем проще потом прочитать его код. Если запись пошла не так, остановите её и начните заново: удалить неудачный макрос проще, чем вычищать лишние строки из кода. Имя давайте говорящее — «ОформитьШапку» понятнее, чем «Макрос1», а справка напоминает, что имена, похожие на ссылки на ячейки, могут вызвать ошибку[1].
Именно поэтому записанный макрос полезно сразу проверить на примере и посмотреть, какой код он оставил.
Пример макроса: оформить шапку и запустить код кнопкой
Макрос оформления шапки делает строку заголовков жирной одной командой. Запишите его на учебном листе:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Дата | Клиент | Товар | Сумма |
| 2 | 03.11 | Ольхов | Лампа | 2400 |
| 3 | 03.11 | Садыкова | Кресло | 15900 |
Включите запись, выделите A1:D1, нажмите кнопку полужирного шрифта и остановите запись. Запись создаст в редакторе Visual Basic процедуру Sub с выделением диапазона и свойством Font.Bold; короткий вариант той же команды по образцу справки о свойстве Bold[9]:
Sub FormatHeader()
Range("A1:D1").Font.Bold = True
End Sub
Запускают готовую процедуру несколькими способами:
- на вкладке «Разработчик» выберите «Макросы», отметьте нужный и нажмите «Выполнить»[2];
- назначенным сочетанием: в Windows — CTRL+буква для строчной буквы и CTRL+SHIFT+БУКВА для прописной[2];
- щелчком по фигуре: правой кнопкой по фигуре → «Назначить макрос»[2];
- кнопкой на панели быстрого доступа или в своей группе ленты[2];
- из редактора Visual Basic клавишей F5, а пошагово — клавишей F8[2].
Назначение сочетания Ctrl+z лишает книгу обычной отмены действия[2], поэтому справка советует сочетания с SHIFT. Процедуру, которая должна срабатывать при открытии книги, пишут в Workbook_Open объекта ThisWorkbook[2].
Кнопка-фигура удобнее всего для коллег: нарисуйте прямоугольник над таблицей, подпишите его «Оформить» и назначьте ему процедуру. Пошаговый запуск клавишей F8 помогает понять, на какой строке код делает не то, что ожидалось. Для макроса из личной книги кнопку лучше вынести на панель быстрого доступа: тогда он под рукой в любом файле.
Запишите и запустите такой макрос в тренажёре: урок проверит, что шапка оформлена, а команда сработала на нужном диапазоне.
Остаётся понять, когда записи хватает, а когда придётся писать код вручную.
Запись или код вручную: чем отличаются способы создания макроса
Записанный макрос повторяет шаги буквально, а написанный вручную код умеет проверять условия. Запись — быстрый старт: она не требует знания языка и сразу даёт рабочий код. Ручной код нужен, когда шаги зависят от данных.
| Признак | Запись | Код вручную |
|---|---|---|
| нужно знать VBA | нет | да |
| диапазон | только записанный | любой, в том числе вычисленный |
| условия и повторы | не записываются | пишутся в коде |
| ошибки при записи | попадают в процедуру | правятся до запуска |
| скорость старта | минуты | дольше, нужен редактор |
Запись не знает, сколько строк будет завтра: она оформит ровно те ячейки, что были выделены[1]. Если таблица растёт каждый день, откройте код в редакторе Visual Basic и замените адрес диапазона — или перепишите шаг, чтобы он находил границу данных сам.
Английская справка о различиях Office Scripts и VBA подчёркивает, что код VBA получает тот же уровень доступа, что и Excel, то есть полный доступ к компьютеру[5]. Отсюда правило безопасности: чужой код сначала читают, потом запускают.
Комбинированный путь работает лучше всего: запишите шаги, откройте результат в редакторе и поправьте одну-две строки. Так видно, какие объекты и свойства Excel использует запись, и код перестаёт быть чёрным ящиком. Для отладки пригодится тот же пошаговый запуск клавишей F8[2].
В Google Таблицах выбор сделан при записи: справка Google предлагает абсолютные ссылки — запись работает с теми же ячейками — или относительные, когда шаги применяются к выделенной ячейке и соседним[6].
Разобравшись со способами создания, переходим к случаям, когда автоматизация записью лишняя.
Когда макросы не подойдут
Макросы не подойдут, если книгу открывают в браузере или результат нужно уметь отменить. Записанный код выполняется только в настольных версиях Excel, а его действия не возвращаются командой отмены.
- Если книгу открывают в Excel в Интернете, код VBA там не работает[5] — для браузера есть сценарии Office Scripts для Excel в браузере.
- Когда действие нужно уметь отменить, запись опасна: макросы нельзя отменить командой отмены, поэтому перед запуском нужна копия книги[1].
- Если выгрузку каждую неделю чистят одинаковыми шагами, удобнее запрос Power Query с записанными шагами: он обновляется без кода.
- При данных, которые каждый раз другой длины, записанные шаги промахнутся мимо новых строк — нужен код.
- Если файл пришёл из интернета, в Windows его код будет заблокирован до снятия метки в свойствах[8].
Коротко: макросы не подойдут, если книгу открывают в Excel в Интернете, если действие нужно отменять или если данные каждый раз другой длины. В остальных случаях запись экономит минуты каждый день и окупается уже на второй неделе.
Перед тем как раздавать книгу коллегам, проверьте три вещи: формат XLSM, понятное имя процедуры и кнопку на листе. Расскажите, что при открытии появится предупреждение безопасности, и объясните, откуда взялся файл, — тогда «Включить содержимое» нажмут осознанно. Если коллега работает на Mac, сочетания там другие: справка о запуске называет OPTION+COMMAND+буква или CTRL+буква[2].
Начните с одной записи для самого частого действия — оформления шапки или печати. Соседние темы собраны среди всех уроков тренажёра по автоматизации отчётов.
Частые вопросы
Что такое макрос простыми словами?
Макрос — это записанная цепочка действий, которую запускают одной командой или сочетанием клавиш. Внутри хранится код VBA: средство записи создаёт его само, знать язык не нужно[1].
Как включить макросы в Excel?
Чтобы включить макросы в Excel: 1) откройте книгу и нажмите «Включить содержимое» в предупреждении системы безопасности; 2) для общих правил зайдите в Параметры макросов центра управления безопасностью[7]. Вариант «Включить все макросы» справка не рекомендует.
Где хранятся записанные процедуры?
Записанные процедуры хранятся в текущей книге или в личной книге — скрытом файле Personal.xlsb, который доступен в каждом сеансе[1]. Книгу с кодом сохраняют в формате XLSM.
Почему запись пропала после закрытия файла?
Запись пропадает, если книгу сохранили в формате XLSX: этот формат не хранит код VBA[3]. Сохраните файл как книгу с поддержкой кода — XLSM — и запишите шаги заново.
Можно ли отменить действие макроса?
Нет: отменить действие макроса нельзя, справка пишет об этом прямо[1]. Перед запуском сохраните книгу или работайте на копии, а сочетание Ctrl+z процедуре не назначайте.
Работает ли код VBA на Mac и в браузере?
Код VBA работает в Excel для Windows и Excel для Mac, а в Excel в Интернете не поддерживается[5]. Для браузерной версии в экселе есть отдельный инструмент — Office Scripts.
Чем макрос отличается от VBA?
Макрос отличается от VBA тем, что это готовая процедура, а VBA — язык, на котором она записана. Средство записи создаёт код само, а условия и повторы дописывают вручную в редакторе Visual Basic[1].
Источники
- [1] Microsoft, справка «Автоматизация задач с помощью средства записи макросов — Excel», 2026
- [2] Microsoft, справка «Запуск макроса в Excel», 2026
- [3] Microsoft, справка «Поддерживаемые Excel форматы файлов», 2026
- [4] Microsoft, справка «Show the Developer tab» (английская версия), 2026
- [5] Microsoft, справка «Differences between Office Scripts and VBA macros» (английская версия), 2026
- [6] Google, справка «Automate tasks in Google Sheets» (английская версия), 2026
- [7] Microsoft, справка «Включение и отключение макросов в файлах Microsoft 365», 2026
- [8] Microsoft, справка «Macros from the internet are blocked by default in Office» (английская версия), 2026
- [9] Microsoft, справка «Font.Bold property (Excel)» (английская версия), 2026