Как включить макросы в Excel, зависит от того, откуда взялся файл. Для своей книги достаточно нажать Включить содержимое на жёлтой полосе над таблицей. Для файла, скачанного из интернета или из почты, свежий Excel этой кнопки не показывает: сначала нужно снять с файла «знак интернета» в его свойствах. А если вы пользуетесь макросами постоянно, удобнее всего завести надёжную папку, где Excel запускает их без вопросов.
Ниже по порядку: что такое макрос и почему Excel его блокирует, три способа включить макросы (для одного файла, через центр управления безопасностью и через надёжное расположение), вкладка «Разработчик», запись первого макроса, запуск кнопкой и сочетанием клавиш, сохранение в .xlsm и личная книга макросов. В конце четыре готовых макроса для дома и правила безопасности. Настройки я сверял на своём компьютере с Microsoft Excel 2021 (сборка 16.0.17002.20000, русский интерфейс), названия пунктов взяты из справки Microsoft.
Коротко
- Свой файл: нажмите Включить содержимое на жёлтой полосе. Excel запомнит файл как надёжный и больше спрашивать не будет.
- Файл из интернета или почты: щёлкните по нему правой кнопкой в «Проводнике» → Свойства → вкладка Общие → флажок Разблокировать → ОК, затем откройте заново. Делайте так, только если доверяете источнику.
- Постоянная работа с макросами: заведите отдельную папку и добавьте её в Надёжные расположения. Пункт «Включить макросы VBA» в центре управления безопасностью не выбирайте: он открывает дорогу любому макросу.
- Записать макрос: вкладка Разработчик → Запись макроса, выполните действия, Остановить запись. Книгу сохраните как «Книга Excel с поддержкой макросов» (.xlsm), иначе код пропадёт.
- Запустить: Alt+F8 → выбрать макрос → Выполнить, либо своё сочетание клавиш, либо кнопка на листе.
Что такое макрос в Excel
Макрос в Excel это небольшая программа на языке VBA (Visual Basic for Applications), которая повторяет действия за вас: форматирует таблицу, вставляет дату, удаляет пустые строки, сохраняет копию книги. Его можно не писать руками, а записать: Excel запоминает ваши щелчки и ввод и превращает их в код. Потом этот код запускается одной кнопкой. Для отчётов макрос часто не нужен: сводная таблица собирает итоги без единой строки кода, а макрос выручает там, где одни и те же действия повторяются руками.
Макрос живёт внутри книги, поэтому обычный формат .xlsx для него не подходит. По справке Microsoft, в .xlsx нельзя сохранить код VBA, а в .xlsm («Книга Excel с поддержкой макросов») можно. Отсюда простое правило: если вам прислали .xlsx, макросов в нём нет, а .xlsm, .xlsb и старый .xls могут их содержать.
Макрос умеет не только работать с таблицей, но и удалять файлы, скачивать данные из интернета, запускать программы. Поэтому через документы с макросами годами распространяют вирусы, и Excel по умолчанию макросы не запускает.
Почему Excel блокирует макросы
Когда вы открываете книгу с макросами, Excel по очереди проверяет несколько условий. Порядок взят из блок-схемы Microsoft в статье о блокировке макросов из интернета:

Здесь три разных механизма, которые часто путают.
Защищённый просмотр. Файл из интернета или вложение Outlook сначала открывается только для чтения, сверху жёлтая полоса с кнопкой Включить редактирование. Это ещё не про макросы: пока режим включён, не работает ни редактирование, ни активное содержимое. Нажали кнопку, и Excel переходит к следующей проверке.
Предупреждение о макросах. Если в книге есть макросы, а файл не из надёжной папки, появляется жёлтая полоса «Предупреждение системы безопасности» с кнопкой Включить содержимое. Так работает параметр по умолчанию «Отключить макросы VBA с уведомлением».
Знак интернета (Mark of the Web). Когда браузер или почтовая программа сохраняет файл на диск NTFS, Windows прикрепляет к нему скрытую пометку о происхождении: дополнительный поток данных Zone.Identifier с номером зоны. Зона 3 означает «Интернет». Я проверил папку «Загрузки» на своём компьютере: из 40 последних скачанных документов Office и PDF пометка ZoneId=3 нашлась у 39.
Блокировка макросов из интернета: с какого года
В феврале 2022 года Microsoft объявила, что Office перестанет давать включать макросы в файлах со знаком интернета. Для таких файлов вместо жёлтой полосы показывается красная «Риск безопасности»: Microsoft заблокировала макросы, потому что источник файла не является доверенным. Кнопки Включить содержимое на ней нет, есть только Подробнее.
По официальной таблице Microsoft, в Excel из Microsoft 365 это включено так:
| Канал обновлений | Версия | Дата |
|---|---|---|
| Актуальный канал (предварительная версия) | 2203 | с 12 апреля 2022 года |
| Актуальный канал (обычный домашний Microsoft 365) | 2206 | с 27 июля 2022 года |
| Ежемесячный канал (корпоративный) | 2208 | 11 октября 2022 года |
| Полугодовой канал (корпоративный) | 2208 | 10 января 2023 года |
Изменение касается только Office для Windows: на Mac, в браузере и на телефоне оно не действует. Для «коробочных» версий (Office 2021, 2019, 2016) Microsoft в анонсе 2022 года писала, что сделает то же самое позже, без конкретной даты, а в нынешней таблице эти версии не упомянуты. На своём Excel 2021 я этот сценарий не воспроизводил, поэтому утверждать, какую полосу увидите вы, не буду. Способ ниже работает в обоих случаях.
Есть важная деталь из той же схемы: если файл когда-то уже открывали и нажимали Включить содержимое, он считается «надёжным документом», и макросы в нём работают дальше. Список таких файлов Excel хранит в реестре, у меня в нём 437 записей.
Как включить макросы в Excel для одного файла
Кнопка «Включить содержимое»
Самый частый случай: вы сами сделали книгу с макросом или получили её от человека, которому доверяете, а файл не из интернета (например, скопирован с флешки).
- Откройте файл. Если сверху жёлтая полоса защищённого просмотра, нажмите Включить редактирование.
- На полосе «Предупреждение системы безопасности» нажмите Включить содержимое.
Всё, макросы работают, и в следующий раз Excel откроет этот файл без вопросов. Если вы не уверены, что делает макрос, кнопку не нажимайте: файл можно смотреть и править и с выключенными макросами.
Разблокировать файл в свойствах
Если файл скачан из интернета или сохранён из письма и Excel показывает красную полосу «Риск безопасности», кнопкой его не включить. Нужно снять знак интернета:
- Закройте файл в Excel.
- В «Проводнике» щёлкните по файлу правой кнопкой мыши и выберите Свойства.
- На вкладке Общие внизу поставьте флажок Разблокировать и нажмите ОК.
- Откройте файл снова. Теперь появится обычная жёлтая полоса, и сработает Включить содержимое.
Если флажка нет, знака интернета у файла нет, и мешает что-то другое, например параметры макросов.
То же самое делается в PowerShell. Проверить, есть ли знак, и снять его:
Get-Content .\Бюджет.xlsm -Stream Zone.Identifier
Unblock-File .\Бюджет.xlsmПервая команда покажет ZoneId=3, если файл из интернета, и ошибку, если пометки нет. Вторая удалит пометку: я проверил это на тестовом файле в PowerShell 5.1.
Центр управления безопасностью: параметры макросов
Общая настройка для всех файлов находится здесь: Файл → Параметры → Центр управления безопасностью → кнопка Параметры центра управления безопасностью → раздел Параметры макросов. Если вкладка «Разработчик» уже включена, туда же ведёт кнопка Разработчик → Безопасность макросов.
Вариантов четыре. В Excel они называются с уточнением «VBA»:
| Параметр | Что происходит | Когда выбирать |
|---|---|---|
| Отключить макросы VBA без уведомления | Макросы не запускаются, полосы с кнопкой нет | Если макросы вам не нужны вообще. Самый безопасный вариант |
| Отключить макросы VBA с уведомлением | Макросы выключены, но на полосе есть Включить содержимое | Вариант по умолчанию. Подходит большинству |
| Отключить макросы VBA, за исключением макросов с цифровой подписью | Работают только макросы, подписанные доверенным издателем | Для офиса, где макросы подписывают сертификатом. Дома редкость |
| Включить макросы VBA (не рекомендуется) | Любой макрос запускается сразу, без вопросов | Не выбирайте. Один заражённый файл из почты, и код выполнится молча |
Ниже есть ещё два флажка. «Включить макросы Excel 4.0, если макросы VBA включены» относится к очень старому языку макросов XLM, дома он не нужен. «Доверенный доступ к объектной модели проекта VBA» разрешает другим программам читать и менять код макросов в ваших книгах. По умолчанию он выключен, и включать его без конкретной причины не стоит.
Эти параметры хранятся в реестре Windows, в разделе HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Security: «Параметры макросов» в значении VBAWarnings, флажок доступа к проекту VBA в значении AccessVBOM. Я посмотрел этот раздел на своём компьютере, ничего не меняя: обоих значений там нет. Значит, настройки никто не трогал и действуют варианты по умолчанию. Excel это подтвердил: на попытку программы прочитать код книги он ответил «Программный доступ к проекту Visual Basic не является доверенным».
Важно: по схеме Microsoft знак интернета проверяется раньше этих параметров, поэтому в Microsoft 365 они не отменяют блокировку скачанных файлов. Даже при «Включить макросы VBA» красная полоса на скачанном файле останется, пока вы не снимете знак интернета (или файл не окажется в надёжной папке).
Надёжные расположения: самый удобный безопасный способ
Надёжное расположение это папка, файлам из которой Excel полностью доверяет: они открываются без защищённого просмотра, а макросы в них включены сразу. По схеме Microsoft эта проверка идёт первой, раньше знака интернета. Поэтому если вы регулярно пользуетесь своими книгами с макросами, лучший вариант такой: оставить параметры макросов по умолчанию и завести одну папку только для проверенных файлов.
- Создайте папку, например
C:\Users\Имя\Documents\Макросы. - Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Надёжные расположения.
- Нажмите Добавить новое расположение, затем Обзор, выберите папку.
- При желании отметьте флажок про вложенные папки и нажмите ОК во всех окнах.
Microsoft советует не делать надёжными корневые папки: весь диск C:, целиком «Документы», а тем более «Загрузки» или «Рабочий стол», куда попадает всё подряд. Нужна отдельная вложенная папка, куда вы кладёте только свои и проверенные файлы. Сетевые папки по умолчанию надёжными сделать нельзя. Это разрешает флажок «Разрешить надёжные расположения в моей сети (не рекомендуется)», но дома он не нужен.
Несколько надёжных расположений Excel создаёт сам при установке. На моём компьютере их шесть, ровно как в таблице Microsoft: папки шаблонов, папки автозагрузки XLSTART (общая и пользовательская), STARTUP и Library в папке Office. Одна из них пригодится ниже, для личной книги макросов.
Вкладка «Разработчик»
Все кнопки для работы с макросами собраны на вкладке Разработчик, а она по умолчанию скрыта. Включается так:
- Файл → Параметры → Настроить ленту.
- В правом списке «Основные вкладки» поставьте флажок Разработчик и нажмите ОК.
На вкладке появится группа «Код»: Visual Basic (редактор кода), Макросы (список макросов), Запись макроса, Относительные ссылки и Безопасность макросов. Рядом группа «Элементы управления» с кнопкой Вставить, через неё добавляют кнопки на лист. Без неё макросы можно записать и запустить через Вид → Макросы, но для кнопок она нужна.
Как записать макрос
Запись подходит для повторяющихся действий: одинаково оформить таблицу, вставить шапку, отсортировать и раскрасить. Для примера запишем макрос, который делает шапку отчёта жирной, заливает её и подбирает ширину столбцов.
- Щёлкните в ячейку A1 таблицы.
- Разработчик → Запись макроса. Откроется окно «Запись макроса».
- В поле Имя макроса введите имя без пробелов, например
OformitShapku. Имя должно начинаться с буквы, пробелы заменяйте подчёркиванием. - В поле Сочетание клавиш можно вписать букву (об этом ниже).
- В списке Сохранить в выберите, где будет жить макрос: «Эта книга», «Новая книга» или «Личная книга макросов».
- В поле Описание коротко напишите, что делает макрос, и нажмите ОК.
- Выполните действия: выделите строку шапки, сделайте её жирной, залейте цветом, выделите столбцы и дважды щёлкните по границе заголовка столбца, чтобы подобрать ширину.
- Разработчик → Остановить запись.
Средство записи сохраняет почти всё, включая лишние щелчки, поэтому продумайте действия заранее. И главное: действие макроса нельзя отменить через Ctrl+Z. Перед первым запуском на настоящих данных сохраните книгу или сделайте копию.
Посмотреть код можно в редакторе: Alt+F11, слева папка «Modules» → «Module1».
Абсолютные и относительные ссылки
По умолчанию запись абсолютная: если во время записи вы щёлкнули в B2, макрос всегда будет работать с B2, где бы ни стоял курсор при запуске. Кнопка Относительные ссылки переключает запись в относительный режим: макрос запоминает не адрес, а сдвиг от активной ячейки («на одну правее, на две ниже»).
В коде абсолютная запись выглядит как Range("B2").Select, относительная как ActiveCell.Offset(1, 1).Range("A1").Select. Относительный режим нужен, когда действие повторяется в разных местах листа. Кнопку нажимают до начала действий, она остаётся нажатой, пока её не отожмут.
Как запустить макрос
Через окно «Макрос» (Alt+F8)
Нажмите Alt+F8 (или Разработчик → Макросы). Откроется окно «Макрос» со списком. Выберите макрос и нажмите Выполнить. В списке «Находится в» можно выбрать, макросы каких книг показывать. Здесь же кнопки Изменить (открыть код), Удалить и Параметры.
Сочетанием клавиш
Сочетание задаётся при записи или потом: Alt+F8 → выберите макрос → Параметры → поле «Сочетание клавиш». Строчная буква даёт Ctrl+буква, заглавная (с Shift) даёт Ctrl+Shift+буква.
Справка Microsoft предупреждает: сочетание макроса перекрывает стандартное сочетание Excel, пока открыта книга с этим макросом. Если назначить макросу Ctrl+C, копирование перестанет работать. Поэтому используйте сочетания с Shift, например Ctrl+Shift+D для вставки даты.
Кнопкой на листе
- Разработчик → Вставить → в разделе «Элементы управления формы» выберите «Кнопка».
- Нарисуйте кнопку мышью на листе. Откроется окно назначения макроса: выберите макрос и нажмите ОК.
- Чтобы поменять надпись, щёлкните по кнопке правой кнопкой и выберите Изменить текст.
Вместо кнопки можно взять любую фигуру или картинку: Вставка → Фигуры, нарисуйте прямоугольник, затем правой кнопкой по нему → Назначить макрос.
Как сохранить книгу с макросами
При обычном сохранении книги с макросом в .xlsx Excel предупредит, что проект VBA в книге без поддержки макросов сохранить нельзя. Если согласиться, файл сохранится, а макросы из него исчезнут. Правильно так: Файл → Сохранить как → в поле «Тип файла» выберите *Книга Excel с поддержкой макросов (.xlsm)**.
Учебного файла с макросами к статье нет: чтобы программа положила код в книгу, нужен доступ к проекту VBA, а открывать его ради статьи я не стал. Код макросов ниже приведён текстом.
Личная книга макросов PERSONAL.XLSB
Если макрос нужен во всех книгах (например вставка даты), храните его в личной книге макросов. Это скрытая книга PERSONAL.XLSB, которую Excel открывает сам при каждом запуске.
- Разработчик → Запись макроса.
- В списке Сохранить в выберите Личная книга макросов и нажмите ОК.
- Сразу нажмите Остановить запись. Excel создаст личную книгу, если её не было.
- Откройте редактор (Alt+F11), найдите в списке слева проект «VBAProject (PERSONAL.XLSB)» и вставьте свои макросы в его модуль.
- При закрытии Excel согласитесь сохранить изменения в личной книге макросов.
Файл лежит в папке C:\Users\Имя\AppData\Roaming\Microsoft\Excel\XLSTART. У меня эта папка пока пустая: личную книгу я ещё не создавал. Зато она входит в список надёжных расположений по умолчанию, поэтому макросы из PERSONAL.XLSB работают без жёлтой полосы. Чтобы перенести макросы на другой компьютер, скопируйте PERSONAL.XLSB в такую же папку там.
Четыре полезных макроса для дома
Макросы ниже я написал вручную, их не надо записывать. Как вставить:
- Откройте книгу (или PERSONAL.XLSB), нажмите Alt+F11.
- В редакторе Insert → Module (в редакторе VBA меню на английском).
- Скопируйте код в пустое окно справа и закройте редактор.
- Сохраните книгу как .xlsm.
Как я проверял: вставить код в книгу из своей программы-проверки нельзя без доступа к проекту VBA, а открывать его я не стал. Поэтому сами макросы не запускались, а их логику (кроме даты) я повторил через те же объекты Excel из внешней программы, и всё сработало как описано. Первый запуск на своей книге всё равно делайте на копии.
1. Вставить текущую дату и время
Ставит дату и время в выделенные ячейки. Удобно для журналов, учёта показаний счётчиков, списков дел. Назначьте ему Ctrl+Shift+D.
Sub VstavitDatuVremya()
' Текущие дата и время в выделенные ячейки
If TypeName(Selection) <> "Range" Then Exit Sub
Selection.Value = Now
Selection.NumberFormat = "dd.mm.yyyy hh:mm"
End SubФормула =ТДАТА() делает похожее, но пересчитывается при каждом изменении листа, а макрос ставит значение, которое больше не меняется. Если нужна только дата, замените Now на Date, а формат на "dd.mm.yyyy".
2. Подсветить каждую вторую строку
Заливает чётные строки выделенного диапазона светло-голубым, чтобы длинную таблицу было легче читать.
Sub PodsvetitStroki()
' Заливка каждой второй строки выделенного диапазона
Dim rng As Range, i As Long
If TypeName(Selection) <> "Range" Then Exit Sub
Set rng = Selection
rng.Interior.Pattern = xlNone
For i = 2 To rng.Rows.Count Step 2
rng.Rows(i).Interior.Color = RGB(221, 235, 247)
Next i
End SubСтрока с xlNone снимает старую заливку, чтобы повторный запуск не оставлял лишних полос. Если таблица потом пополняется или сортируется, заливка «поедет». Для живых таблиц лучше правило условного форматирования с формулой, например =ОСТАТ(СТРОКА();2)=0: оно перекрашивает строки само. Как работают правила с формулой, разобрано в статье про условное форматирование в Excel.
3. Удалить пустые строки
Удаляет полностью пустые строки внутри выделения и сообщает, сколько удалено. Выручает после вставки данных из банковской выписки или с сайта.
Sub UdalitPustyeStroki()
' Удаляет полностью пустые строки в выделенном диапазоне
Dim rng As Range, i As Long, n As Long
If TypeName(Selection) <> "Range" Then Exit Sub
Set rng = Intersect(Selection, ActiveSheet.UsedRange)
If rng Is Nothing Then Exit Sub
For i = rng.Rows.Count To 1 Step -1
If Application.WorksheetFunction.CountA(rng.Rows(i).EntireRow) = 0 Then
rng.Rows(i).EntireRow.Delete
n = n + 1
End If
Next i
MsgBox "Удалено пустых строк: " & n
End SubСтроки проверяются снизу вверх: если идти сверху, после удаления строки следующая сдвигается на её место и пропускается. Intersect с UsedRange нужен, чтобы при выделении целых столбцов макрос не перебирал миллион пустых строк. Удаляется только строка, пустая целиком.
4. Сохранить копию книги с датой в имени
Кладёт рядом с книгой копию вида 2026-11-12_14-30_Бюджет.xlsm. Сама книга остаётся открытой и не меняется. Это простая страховка перед большими правками.
Sub SohranitKopiyu()
' Копия текущей книги рядом с ней, с датой и временем в начале имени
Dim wb As Workbook, imya As String
Set wb = ActiveWorkbook
If wb.Path = "" Then
MsgBox "Сначала сохраните книгу"
Exit Sub
End If
imya = wb.Path & "\" & Format(Now, "yyyy-mm-dd_hh-nn") & "_" & wb.Name
wb.SaveCopyAs imya
MsgBox "Копия сохранена: " & imya
End SubВ функции Format минуты обозначаются nn, а не mm: mm в VBA означает месяц. Если книга лежит в OneDrive и открыта прямо из облака, wb.Path может оказаться веб-адресом, и копия не сохранится. Тогда работайте с файлом из синхронизированной папки на диске.
Безопасность: короткие правила
- Не включайте макросы во вложениях почты, если не ждали этот файл и не знаете, что делает макрос. Мошенники специально пишут в документе «включите содержимое, чтобы увидеть текст».
- Не выбирайте «Включить макросы VBA» в центре управления безопасностью. Для своих файлов есть надёжная папка.
- Надёжной делайте только отдельную папку для своих проверенных файлов, а не «Загрузки», «Рабочий стол» или весь диск.
- Флажок «Доверенный доступ к объектной модели проекта VBA» без необходимости не включайте.
- Перед запуском чужого макроса откройте его код (Alt+F8 → Изменить). Слова
Shell,URLDownloadToFile,CreateObject("WScript.Shell"),Killв коде, который должен «просто посчитать таблицу», это повод файл удалить.
Частые вопросы
Как включить макросы в Excel, если кнопки «Включить содержимое» нет?
Скорее всего, у файла знак интернета и сверху красная полоса «Риск безопасности». Закройте файл, в «Проводнике» откройте Свойства, поставьте флажок Разблокировать на вкладке Общие и откройте файл снова. Если нет и полосы, проверьте раздел Параметры макросов: при варианте «Отключить макросы VBA без уведомления» Excel молча выключает макросы.
Как включить макросы в Excel навсегда?
Безопаснее всего положить файлы в папку, добавленную в Надёжные расположения. Один раз нажатая кнопка Включить содержимое тоже работает «навсегда» для конкретного файла. Вариант «Включить макросы VBA» формально решает задачу для всех файлов сразу, но тогда без вопросов запустится и вредоносный макрос.
Почему макрос пропал после сохранения?
Книга сохранена в формате .xlsx, а он код VBA не хранит. Сохраняйте через Сохранить как в формате «Книга Excel с поддержкой макросов (*.xlsm)».
Можно ли отменить действие макроса?
Нет: Ctrl+Z после макроса не работает, об этом прямо предупреждает справка Microsoft. Поэтому перед запуском на важных данных сохраните книгу: если результат не понравится, закройте её без сохранения. Для этого же пригодится макрос 4 из статьи.
Чем запись макроса отличается от написания кода?
Запись повторяет ваши действия буквально и не умеет условий и циклов: «удали строку, если она пустая» записать нельзя, такое пишут руками, как в примерах выше. Удобный путь для новичка: записать действия, а потом подправить код в редакторе.
Источники (16)
- Макросы из Интернета заблокированы по умолчанию в Office - Microsoft
- Потенциально опасный макрос заблокирован - Microsoft
- Включение и отключение макросов в файлах Microsoft 365 - Microsoft
- Защита от макровирусов - Microsoft
- Что такое защищённый режим? - Microsoft
- Надёжные расположения для файлов Office - Microsoft
- Добавление, удаление и изменение надёжного расположения в Microsoft Office - Microsoft
- Отображение вкладки «Разработчик» - Microsoft
- Автоматизация задач с помощью средства записи макросов - Microsoft
- Запуск макроса в Excel - Microsoft
- Назначение макроса кнопке формы или элемента управления - Microsoft
- Создание и сохранение всех макросов в одной книге - Microsoft
- Поддерживаемые Excel форматы файлов - Microsoft
- Сочетания клавиш в Excel - Microsoft
- Свойство Application.RecordRelative - Microsoft
- Microsoft to block Office VBA macros by default - The Register

Комментарии
Пока никто не написал. Будьте первым.