PC-SOFT Лицензии, активация и цифровая выдача GetCID
Главная Блог Ошибки Office Excel не сохраняет макросы: как оставить VBA в книге

Excel не сохраняет макросы: как оставить VBA в книге

Предупреждение Microsoft Excel «Следующие компоненты невозможно сохранить в книге без поддержки макросов» с кнопками «Да» и «Нет»
Содержание статьи

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

Расширение книги отвечает за возможность сохранить VBA

Формат Что происходит с макросом
.xlsx Книга не может хранить код VBA. При подтверждении сохранения без макросов код не попадёт в новый файл.
.xlsm Книга предназначена для содержимого с макросами и сохраняет VBA вместе с листами и данными.

Изменение букв в имени файла вручную не преобразует книгу. Формат выбирают в Excel через «Файл → Сохранить как» или «Сохранить копию», а затем указывают тип «Книга Excel с поддержкой макросов (*.xlsm)».

Предупреждение о несовместимом формате нельзя подтверждать автоматически

Когда книга содержит VBA, а выбран формат без поддержки макросов, Excel предупреждает, что часть функций не сохранится. Если код нужен, не подтверждайте вариант без макросов. Вернитесь в окно выбора типа и сохраните файл как XLSM.

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

Если вы уже согласились сохранить XLSX без VBA и закрыли исходную книгу, новый XLSX не содержит код. Вернуть его можно только из исходного файла, резервной копии или истории версий, если такая копия существовала.

Контрольная копия XLSM проверяется после повторного открытия

Не считайте сохранение успешным только потому, что файл появился в папке. Закройте книгу, снова откройте именно созданный XLSM и выберите «Разработчик → Visual Basic». В Project Explorer найдите VBAProject с именем этой книги и проверьте те же модули, ThisWorkbook или объекты листов, где код находился до сохранения.

  • Окно «Разработчик → Макросы» подходит как дополнительная проверка только для процедур, которые отображались там до сохранения.
  • Пустой список «Макросы» сам по себе не доказывает потерю VBA: обработчик события может храниться в ThisWorkbook или модуле листа.
  • Если нужного проекта или компонента нет, перепроверьте имя и расположение открытого файла. Можно случайно открыть старый XLSX вместо новой копии XLSM.

После проверки проекта выполните одно безопасное тестовое действие, для которого предназначен код. Не запускайте незнакомый VBA только ради проверки формата.

Макрос текущей книги и Personal.xlsb — разные места хранения

Код можно сохранить вместе с конкретной книгой или в скрытой книге Personal.xlsb. Второй вариант используют, когда макрос должен быть доступен при каждом запуске Excel, а не передаваться вместе с одним XLSM.

Поэтому перед выводом «Excel не сохранил макрос» уточните, где он создавался. Сохранение текущего XLSM не переносит в него код из Personal.xlsb автоматически. И наоборот, макрос внутри XLSM не становится общим для всех новых книг.

Ключ активации Microsoft Office Ключ и инструкция приходят на email за 1–5 минут.

Если файл нужно передать другому человеку вместе с VBA, проверяйте именно код внутри VBAProject этой книги и отправляйте сохранённый XLSM, а не XLSX с похожим именем.

Центр управления безопасностью влияет на запуск, а не на формат

Параметры макросов определяют, разрешено ли выполнять код при открытии книги. Они не добавляют поддержку VBA в XLSX и не заменяют сохранение в XLSM. Сначала подтвердите, что код остался в файле, и только затем разбирайте предупреждение безопасности.

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

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

Частые вопросы

Можно ли просто переименовать книгу из .xlsx в .xlsm, чтобы макрос сохранился?

Нет, правка букв в имени файла не меняет внутренний формат книги. Тип выбирают в самом Excel через «Файл → Сохранить как» и пункт «Книга Excel с поддержкой макросов (*.xlsm)».

Я подтвердил сохранение в формате без макросов и закрыл книгу — код можно вернуть?

Из полученного XLSX — нет, кода там уже нет. Восстановить VBA получится только из исходного файла, резервной копии или истории версий, если такая копия существовала.

Окно «Разработчик → Макросы» пустое — значит VBA пропал при сохранении?

Не обязательно: в этом списке видны только процедуры, которые отображались там раньше. Обработчик события может храниться в ThisWorkbook или модуле листа, поэтому проверяют VBAProject книги в редакторе Visual Basic.

Макрос работал в любой книге, а в отправленном XLSM его нет — почему?

Скорее всего, он лежит в скрытой книге Personal.xlsb, а она не передаётся вместе с файлом. Сохранение текущей книги не переносит туда код автоматически: для передачи макрос должен находиться в VBAProject самого XLSM.

Код виден в VBAProject, но не выполняется — пересохранить книгу заново?

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

Итог подтверждают отдельные проверки файла и запуска

  1. В имени открытой книги указано расширение .xlsm, выбранное через диалог Excel.
  2. После закрытия и повторного открытия нужные компоненты остаются в VBAProject именно этой книги.
  3. Для обычного макроса, который раньше был виден в окне «Макросы», отдельно сверяют имя в этом же окне.
  4. Запуск проверяют только для доверенного кода; запрет выполнения не принимают за исчезновение VBA из файла.

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

Купить ключ Microsoft Office

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

Похожие статьи

ЯОтзывы на Яндексерейтинг магазина — скоро
Отзывы на сайтеопыт покупки и активации
Больше 10 000 ключейвыдано с 2020 года
Поддержка каждый деньсредний ответ — 7 минут