Почему вы не видите макросы в Excel (и как это исправить)
Вы открыли файл Excel, но не можете найти, где хранятся макросы? Эта проблема знакома многим — особенно тем, кто впервые сталкивается с автоматизацией задач через VBA. Дело в том, что по умолчанию вкладка для работы с макросами скрыта, а сами скрипты могут быть спрятаны в разных местах в зависимости от версии программы.
В этой статье мы разберём все возможные способы, как обнаружить макросы в Excel 2010, 2013, 2016, 2019, 2021 и Office 365, включая особенности для MacOS. Вы узнаете, где хранятся записанные макросы, как их редактировать, и почему иногда они «исчезают» после сохранения файла. А ещё — как вернуть удалённый макрос из временных файлов Excel, если вы случайно закрыли документ без сохранения.
Прежде чем переходить к инструкциям, проверьте два ключевых момента:
- 📁 Файл сохранён в формате
.xlsm(с поддержкой макросов), а не.xlsx? - 🔧 В настройках включена вкладка
Разработчик(Developer)?
Способ 1: Как открыть редактор VBA (где хранятся все макросы)
Основное место, где можно посмотреть код макросов — это редактор Visual Basic for Applications (VBA). Чтобы туда попасть:
- Откройте файл с макросами (обязательно
.xlsm!). - Нажмите сочетание клавиш
Alt + F11(работает во всех версиях Excel для Windows). - Для MacOS: используйте
Option + F11илиFn + Option + F11(в зависимости от модели клавиатуры).
В открывшемся окне вы увидите дерево проектов слева. Макросы могут находиться в:
- 📄
Модулях(папкаModules) — стандартное место для пользовательских макросов. - 📊
Листах(папкаMicrosoft Excel Objects) — если макрос привязан к конкретному листу. - 📦
ThisWorkbook— макросы, срабатывающие при открытии/закрытии файла.
Если дерево проектов пустое, но вы уверены, что макросы есть — проверьте, не скрыты ли они. Нажмите в редакторе VBA View → Project Explorer (если панель исчезла) или Tools → VBAProject Properties → Protection (если проект защищён паролем).
☑️ Проверка перед работой с макросами
Способ 2: Просмотр списка макросов через вкладку «Разработчик»
Если вам не нужен код, а только список доступных макросов для запуска, используйте встроенную панель:
- Перейдите на вкладку
Разработчик(Developer). Если её нет — включите черезФайл → Параметры → Настройка ленты. - Нажмите кнопку
Макросы(Macros) в группеКод. - В открывшемся окне вы увидите все макросы, доступные для выполнения в текущем файле.
Обратите внимание на столбец Макрос в: — он показывает, где именно хранится скрипт:
- 📂
Эта книга(This Workbook) — макрос в текущем файле. - 📂
Личная книга макросов(Personal Macro Workbook) — макрос доступен во всех файлах Excel. - 📂 Название другого файла — макрос подключён из внешнего источника.
⚠️ Внимание: Если в списке нет нужного макроса, но вы уверены, что он записан — проверьте, не отключены ли макросы в настройках безопасности (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов).
Способ 3: Где искать макросы в личной книге макросов (Personal.xlsb)
Личная книга макросов — это скрытый файл, который загружается автоматически при запуске Excel и содержит макросы, доступные во всех документах. Чтобы его найти:
- Откройте редактор VBA (
Alt + F11). - В дереве проектов найдите
VBAProject (PERSONAL.XLSB). - Разверните папку
Modules— здесь хранятся все «глобальные» макросы.
Если файла PERSONAL.XLSB нет, но вы записывали макросы с выбором Личная книга макросов при сохранении — он мог не создаться из-за ошибки. Чтобы восстановить:
- 🔍 Проверьте папку
C:\Users\<Ваше_имя>\AppData\Roaming\Microsoft\Excel\XLSTART(для Windows). - 🔍 Для MacOS:
/Users/<Ваше_имя>/Library/Group Containers/UBF8T346G9.Office/Excel/XLSTART. - 🔄 Если файл есть, но не загружается — переместите его в другую папку и перезапустите Excel (он создаст новый
PERSONAL.XLSB).
Как создать личную книгу макросов, если её нет?
1. Запишите любой макрос (например, выделение ячейки).
2. При сохранении выберите Личная книга макросов.
3. Закройте Excel — файл PERSONAL.XLSB будет создан автоматически.
Способ 4: Просмотр макросов через «Диспетчер имен» (для скрытых скриптов)
Некоторые макросы могут быть привязаны к именам ячеек или диапазонов. Чтобы их найти:
- Перейдите на вкладку
Формулы(Formulas). - Нажмите
Диспетчер имен(Name Manager). - Проверьте список на наличие имён, содержащих
MacroилиVBA.
Если в списке есть подозрительные имена (например, Auto_Open), они могут ссылаться на макросы. Чтобы увидеть связанный код:
- 🔗 Выделите имя в диспетчере.
- 🔍 Посмотрите в поле
Диапазон— если там указано что-то вроде=MACRO1!A1, это значит, что макрос хранится на листеMACRO1. - 📝 Откройте этот лист и проверьте привязанные скрипты через редактор VBA.
⚠️ Внимание: Удаление имени из диспетчера не удаляет сам макрос! Это только разрывает связь между именем и кодом. Чтобы полностью удалить макрос, сделайте это через редактор VBA.
Способ 5: Поиск макросов в скрытых листах и очень скрытых листах
Макросы могут быть спрятаны на скрытых листах, которые не отображаются в обычном интерфейсе. Чтобы их найти:
- Откройте редактор VBA (
Alt + F11). - В дереве проектов разверните папку
Microsoft Excel Objects. - Посмотрите на значки листов:
- 📄 Обычный лист.
- 👁️ Скрытый лист (глаз перечёркнут).
- 🔒 Очень скрытый лист (серый значок).
Чтобы показать скрытый лист:
- 🖱️ Кликните правой кнопкой по имени листа в дереве VBA.
- 📋 Выберите
Properties(Свойства). - 🔘 В поле
Visibleустановите-1 - xlSheetVisible.
Для «очень скрытых» листов (xlSheetVeryHidden) этот способ не сработает — их можно вернуть только через VBA-код:
Sub UnhideVeryHiddenSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Visible = xlSheetVeryHidden Then
ws.Visible = xlSheetVisible
End If
Next ws
End Sub
| Тип скрытия | Как показать | Примечание |
|---|---|---|
Обычный скрытый (xlSheetHidden) |
ПКМ по листу → Отобразить |
Видно в интерфейсе Excel |
Очень скрытый (xlSheetVeryHidden) |
Только через VBA | Не видно в интерфейсе |
Скрытый в VBA (Visible = 2) |
Изменить свойство Visible на -1 |
Требует редактор VBA |
Что делать, если макросы «исчезли» после сохранения файла
Частая проблема: вы записали макрос, но после сохранения файла он пропал. Причины и решения:
- 💾 Файл сохранён в формате
.xlsx: Макросы не сохраняются в файлах без поддержки VBA. Решение: сохраните как.xlsm. - 🚫 Макросы отключены в настройках безопасности: Перейдите в
Файл → Параметры → Центр управления безопасностью → Параметры макросови выберитеВключить все макросы(не рекомендуется для недоверенных файлов!). - 🔄 Excel завис при сохранении: Проверьте папку с временными файлами:
- Для Windows:
C:\Users\<Ваше_имя>\AppData\Local\Microsoft\Office\UnsavedFiles - Для MacOS:
/Users/<Ваше_имя>/Library/Containers/com.microsoft.Excel/Data/Library/Preferences/AutoRecovery
- Для Windows:
- 🛡️ Антивирус удалил макросы: Добавьте папку с файлом Excel в исключения антивируса (например, Kaspersky, ESET или Windows Defender часто блокируют VBA).
FAQ: Частые вопросы о макросах в Excel
Можно ли посмотреть макросы в Excel Online?
Нет, Excel Online (веб-версия) не поддерживает просмотр и редактирование макросов. Вы можете только запускать макросы, которые уже записаны в файле, если они не требуют взаимодействия с объектами Excel (например, ActiveX). Для полноценной работы с VBA нужен десктопный Excel.
Где хранятся макросы, если файл повреждён?
Если файл .xlsm не открывается, но вам нужно достать макросы:
- Переименуйте файл в
.zip(например,книга.xlsm → книга.zip). - Откройте архив и перейдите в папку
xl. - Найдите файл
vbaProject.bin— это и есть ваши макросы в двоичном формате. - Используйте инструменты вроде VBA Code Export или Hex-редактор для извлечения кода.
⚠️ Этот метод подходит только для опытных пользователей!
Как найти макрос, который запускается при открытии файла?
Такие макросы называются автозапускаемыми и могут храниться в следующих местах:
- 📖
ThisWorkbook→ процедураWorkbook_Open(). - 📄 Любой лист → процедура
Worksheet_Activate(). - 🔄 Модуль с процедурой
Auto_Open()(устаревший метод).
Чтобы отключить автозапуск, удерживайте Shift при открытии файла.
Почему в MacOS не работает Alt + F11?
На Mac сочетание клавиш для открытия редактора VBA отличается:
- 🍎 Excel 2016 и новее:
Option + F11илиFn + Option + F11. - 🍎 Excel 2011:
Fn + Option + F11(может потребоваться включитьUse F1, F2 etc. as standard function keysв настройках клавиатуры). - 🖱️ Альтернатива: через меню
Сервис → Макрос → Редактор Visual Basic.
Можно ли экспортировать макросы в отдельный файл?
Да! Чтобы сохранить макросы отдельно от книги:
- Откройте редактор VBA (
Alt + F11). - В дереве проектов выделите модуль с макросами.
- Нажмите
Файл → Export File.... - Сохраните файл с расширением
.bas(например,мои_макросы.bas).
Чтобы импортировать обратно: File → Import File....