Открыть сервисСервис

Формат файлов XLSM

XLSM — расширение файлов электронных таблиц Microsoft Excel, сохранённых в формате Office Open XML с поддержкой макросов на языке Visual Basic for Applications (VBA). Файлы с расширением .xlsm являются разновидностью формата .xlsx и отличаются от него возможностью хранить и исполнять макрокод. Формат утверждён корпорацией Microsoft как часть стандарта Office Open XML (ISO/IEC 29500) и официально поддерживается начиная с версии Microsoft Office 2007.

Отличие от XLSX

Основное и принципиальное отличие XLSM от XLSX заключается в флаге содержимого (content type) внутри ZIP-архива, из которого состоит файл. Оба формата используют одинаковую структуру упаковки, но в XLSM дополнительно разрешено хранение VBA-проекта — модулей, форм, пользовательских функций и обработчиков событий. В Excel при сохранении книги пользователь может выбрать между «Книгой Excel» (.xlsx) и «Книгой Excel с поддержкой макросов» (.xlsm). Если книга содержит макросы, но сохранена в формате XLSX, макрокод будет безвозвратно удалён.

Внутренняя структура файла

Файл .xlsm, как и .xlsx, является ZIP-архивом, содержащим набор XML-документов и ресурсов. Типичная структура включает:

  • [Content_Types].xml — описывает типы всех содержимыхых элементов архива; именно здесь указан тип application/vnd.ms-excel.sheet.macroEnabled.main+xml, отличающий XLSM от XLSX;
  • xl/workbook.xml — описание структуры книги (листы, именованные диапазоны);
  • xl/worksheets/ — XML-представление отдельных листов;
  • xl/sharedStrings.xml — общий словарь текстовых значений;
  • xl/styles.xml — описание форматирования;
  • xl/vbaProject.bin — бинарный файл VBA-проекта, содержащий скомпилированный макрокод (присутствует только в XLSM и старых бинарных форматах .xls с макросами).

Наличие vbaProject.bin — ключевой признак макросодержащей книги. Этот файл хранится в закодированном виде, его структура документирована в спецификации MS-OVBA.

История и контекст появления

До выхода Microsoft Office 2007 электронные таблицы Excel сохранялись в бинарном формате .xls (BIFF — Binary Interchange File Format). С выходом Office 2007 компания перешла на открытый формат Office Open XML, в котором данные упакованы в ZIP-архив и описаны XML-документами. Новый формат получил расширение .xlsx, а его макросодержащая разновидность — .xlsm. Отдельное расширение было введено для того, чтобы операционная система и антивирусное программное обеспечение могли отличать файлы с потенциально исполняемым кодом от «чистых» таблиц.

Безопасность

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

По умолчанию Microsoft Office блокирует запуск макросов в файлах, полученных из интернета или по электронной почте, отображая предупреждение «Макросы в этом файле отключены». Начиная с обновлений 2022 года Microsoft усилила эту политику: макросы из интернет-источников теперь блокируются без возможности быстрого разблокирования через панель уведомлений, а для разрешения требуется изменение групповой политики или настройка через реестр.

Поддержка и совместимость

Кроме Microsoft Excel, формат XLSM читают и редактируют LibreOffice Calc, Apache OpenOffice, Google Таблицы (с ограничениями по поддержке VBA), а также библиотеки для программной работы с файлами — например, Open XML SDK от Microsoft и различные библиотеки на Python. Однако полноценное выполнение макросов VBA обеспечивает только Microsoft Excel; в других редакторах макрокод может быть прочитан, но не исполняется или исполняется частично.

Применение

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

Ограничения

VBA — устаревающая технология: Microsoft не развивает язык с середины 2000-х годов, не поддерживает 64-битные системные вызовы без ручной настройки и не планирует переноса VBA в облачную версию Excel (Excel Online макросы не выполняет). Альтернативой выступают скрипты на TypeScript для Office (Office Scripts) и надстройки на JavaScript, однако они не заменяют VBA в существующих корпоративных решениях.

Источники:

  • Спецификация Office Open XML (ISO/IEC 29500)
  • Документация Microsoft по форматам файлов Excel
  • Спецификация MS-OVBA (Microsoft Open Specification)
  • Документация LibreOffice по поддержке форматов Office
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru