Office 2024/Microsoft 365: почему не работает ActiveX и как это диагностировать
· Го Комура · ActiveX, COM, Office, Microsoft 365, 32-бит, 64-бит, Windows, Использование существующих активов
Что нужно знать в первую очередь
В Office 2024 и Microsoft 365 элементы управления ActiveX отключены по умолчанию. Если кнопки и формы Excel, а также встроенные объекты Word / PowerPoint, которые раньше работали, после обновления вдруг выглядят «неработающими», причина, как правило, — не поломка программы, а изменение значения безопасности по умолчанию.
Причины делятся на три большие группы.
- Изменение настроек безопасности (Trust Center, отключение ActiveX по умолчанию)
- Несовпадение разрядности 32-бит / 64-бит (32-битный элемент управления в 64-битном Office)
- Проблемы с регистрацией COM или нехватка зависимых DLL / рантаймов (не выполнен regsvr32, отсутствует рантайм VC++)
Практическое правило: быстрее всего проверять в этом порядке, сверху вниз.
Office 2024 vs Microsoft 365 — в чём разница
| Аспект | Office 2024 (бессрочная лицензия) | Microsoft 365 Apps (подписка) |
|---|---|---|
| Модель обновлений | Только обновления безопасности / качества. Новые функции не добавляются | Постоянные функциональные обновления по каналам |
| ActiveX по умолчанию | Отключён | Отключён (так же) |
| Пути реестра / политик | Остаются 16.0 | Остаются 16.0 |
| Поддерживаемая ОС (на 2026 год) | Windows 11, Server 2025 / 2022, Win10 LTSC | Официальное требование — Windows 11, Server 2025 / 2022. Для Win10 переходный период до октября 2028 года |
| Способ установки | Click-to-Run (не MSI) | Click-to-Run |
Важно: путь реестра остаётся 16.0 даже в Office 2024. Искать «24.0, потому что 2024 год» — классическая ложная тропа.
О Windows 10
Основная поддержка Windows 10 завершилась 14 октября 2025 года. Однако Microsoft 365 Apps на Windows 10 всё ещё находится в переходном периоде и получает обновления безопасности до 10 октября 2028 года. Иными словами, ситуация выглядит так:
- Неверно, что «на Windows 10 вообще ничего не работает»
- Вы работаете в состоянии двойной предпосылки: «ОС без поддержки, Apps — в переходном периоде»
Общая схема диагностики
flowchart TD
A[Воспроизвести симптом] --> B[Собрать название продукта, сборку, разрядность Office и сведения об ОС]
B --> C{ОС / Office соответствуют требованиям поддержки?}
C -- Нет --> C1[Исправить предпосылки: пересмотреть ОС / редакцию Office / канал]
C -- Да --> D[Проверить Trust Center]
D --> E{Проблема в настройках ActiveX / защищённом просмотре / доверенных документах?}
E -- Да --> E1[Исправить настройки, подпись, схему распространения]
E -- Нет --> F{Зависит от устаревшего Web / IE?}
F -- Да --> F1[Проверить режим IE и список сайтов]
F -- Нет --> G[Проверить CLSID / InprocServer32 / TypeLib]
G --> H{Регистрация COM в порядке?}
H -- Нет --> H1[regsvr32 / RegAsm / переустановка]
H -- Да --> I[Проверить зависимые DLL / .NET / рантайм VC++]
I --> J{Зависимости удовлетворены?}
J -- Нет --> J1[Восстановить и переустановить нужный рантайм]
J -- Да --> K[Собрать логи / Procmon / Process Explorer]
K --> L[Проверить различия по сборкам и обновлениям безопасности]
Шаг 1 — собрать сведения об окружении
Прежде всего обязательно зафиксируйте следующую информацию. Смысл в том, чтобы судить не «на глаз», а по конкретным цифрам.
Со стороны Office
- Проверьте через [Файл] → [Учётная запись] → [Сведения о продукте]
- название продукта (Office 2024 или Microsoft 365)
- версию и номер сборки (самое важное)
- тип установки (Click-to-Run)
- Проверьте 32-бит / 64-бит в диалоге сведений о продукте, например [О программе Excel] / [О программе Word]
Со стороны Windows
# Базовые сведения об ОС
Get-CimInstance Win32_OperatingSystem |
Select-Object Caption, Version, BuildNumber, OSArchitecture
# Пути к исполняемым файлам процессов Office
Get-Process WINWORD, EXCEL, POWERPNT, VISIO -ErrorAction SilentlyContinue |
Select-Object ProcessName, Path
Частые ошибки
| Ошибка | Правильный подход |
|---|---|
| Ограничиться фразой «у нас последняя версия» | Проверить номер сборки. В Microsoft 365 различия между каналами существенны |
| Установить 32-битный COM / ActiveX в 64-битный Office | Разрядность Office и COM обязана совпадать |
| Считать, что на Windows 10 ничего не сработает | В переходный период всё ещё может работать, но основа нестабильна |
Шаг 2 — проверить Trust Center и настройки безопасности
Здесь нужно разделить два случая: «блокируется сам файл» или «не удаётся загрузить сам COM-объект».
Чек-лист (по порядку сверху вниз)
| № | Пункт проверки | Где искать | Частая причина |
|---|---|---|---|
| 1 | Панель сообщений ActiveX | Жёлтая панель при открытии файла | Отключено по умолчанию. Проверьте, заработает ли временно после [Включить содержимое] |
| 2 | Trust Center > Параметры ActiveX | [Файл] > [Параметры] > [Центр управления безопасностью] | Не установлен ли режим «Отключить всё без уведомления» |
| 3 | Защищённый просмотр | Trust Center > Защищённый просмотр | Блокируется при открытии из сетевого ресурса или вложения письма |
| 4 | Доверенные документы | Trust Center > Доверенные документы | После однократного доверия предупреждение больше не появляется, и воспроизведение зависит от конкретного компьютера |
| 5 | Доверенные издатели | Trust Center > Доверенные издатели | Даже при наличии подписи доступ не разрешается, если сертификат не распространён |
| 6 | Параметры макросов | Trust Center > Параметры макросов | Макросы и ActiveX — разные настройки, но иногда влияют друг на друга совместно |
Что попробовать в первую очередь
- Скопировать проблемный файл в локальную управляемую папку (например,
C:\Temp) и сохранить под другим именем - Не открывать файл напрямую с сетевого ресурса или из вложения письма (чтобы исключить влияние защищённого просмотра)
- Запустить Office в безопасном режиме, чтобы исключить влияние надстроек
excel /safe
winword /safe
powerpnt /safe
Шаг 3 — проверить зависимость от режима IE
Бывают случаи, когда то, что кажется «обычным сбоем ActiveX», на самом деле вызвано отсутствием настройки режима IE в Edge.
- Режим IE — не общий переключатель браузера, а применяется только к сайтам, зарегистрированным в Enterprise Site List
- Если не работает лишь часть внутренней веб-интеграции, проверьте, входит ли этот сайт в список для режима IE
Проверить это можно здесь:
- Политики Edge: административные шаблоны > Microsoft Edge
- Реестр:
HKLM\SOFTWARE\Policies\Microsoft\Edge - Диагностическая страница:
edge://compat/iediagnostic
Шаг 4 — проверить регистрацию COM
Если с Trust Center всё в порядке, следующий шаг — проверить, корректно ли зарегистрирован сам COM-объект.
Основные команды проверки
:: Проверить состояние регистрации CLSID
reg query "HKLM\SOFTWARE\Classes\CLSID\{YOUR-CLSID-HERE}\InprocServer32" /s
:: Зарегистрировать / отменить регистрацию нативной COM / ActiveX DLL
regsvr32 C:\Path\YourControl.dll
regsvr32 /u C:\Path\YourControl.dll
Для COM-компонентов на .NET (важно)
Для сборок .NET regsvr32 не подходит. Используйте RegAsm.
:: 32-битный Office на 64-битной Windows -> используйте RegAsm из Framework
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "C:\Path\YourControl.dll" /codebase /tlb
:: 64-битный Office -> используйте RegAsm из Framework64
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" "C:\Path\YourControl.dll" /codebase /tlb
Типичная ошибка: «разрядность RegAsm не совпадает с разрядностью Office» — в реестре регистрация выглядит успешной, но Office компонент не находит.
Шаг 5 — проверить зависимые DLL / рантаймы
Если «основная DLL присутствует, но не загружается», чаще всего причина — нехватка зависимости.
Рантаймы, которых часто не хватает на практике
| Что часто отсутствует | Как проверить |
|---|---|
| Пакеты Visual C++ Redistributable (2013, 2015-2022) | Список в панели управления > Программы и компоненты |
| .NET Framework 4.8.1 | reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" |
| Зависимые DLL (специфичные для поставщика) | Проверка через Process Explorer / Procmon |
Инструменты для низкоуровневого анализа
| Инструмент | Назначение |
|---|---|
| Process Explorer | Просмотр списка DLL, загруженных в процесс |
| Procmon | Отслеживание NAME NOT FOUND / PATH NOT FOUND / ACCESS DENIED в реальном времени |
Если снять лог Procmon в момент воспроизведения и отфильтровать по NAME NOT FOUND, сразу становится видно, какую DLL или ключ реестра не удалось найти.
Шаг 6 — собрать журналы для окончательной проверки
Если причина до сих пор не найдена, включите журналирование и поймайте момент воспроизведения.
Включение общего журналирования Office
reg add HKCU\Software\Microsoft\Office\16.0\Common\Logging /v EnableLogging /t REG_DWORD /d 1
Включение подробного журналирования Click-to-Run
reg add HKLM\SOFTWARE\Microsoft\ClickToRun\OverRide /v LogLevel /t REG_DWORD /d 3
reg add HKLM\SOFTWARE\Microsoft\ClickToRun\OverRide /v PipelineLogging /t REG_DWORD /d 1
Журналы записываются в %windir%\temp или %temp%.
Дополнительно используйте средство просмотра событий
eventvwr.msc
- Проверьте раздел Журналы Windows > Приложение
- Ошибки .NET Runtime и SideBySide часто оказываются решающей подсказкой
Отключение журналирования после проверки (не забудьте)
reg delete HKCU\Software\Microsoft\Office\16.0\Common\Logging /v EnableLogging /f
reg delete HKLM\SOFTWARE\Microsoft\ClickToRun\OverRide /v PipelineLogging /f
reg delete HKLM\SOFTWARE\Microsoft\ClickToRun\OverRide /v LogLevel /f
Быстрый справочник по ключевым разделам реестра / политик
Четыре пути, которые стоит запомнить
| Назначение | Путь |
|---|---|
| Корень политик Office | HKLM\SOFTWARE\Policies\Microsoft\Office\16.0 |
| Проверка полного отключения ActiveX | HKCU\Software\Microsoft\Office\Common\Security\DisableAllActiveX (1 = отключено, 0 = снято) |
| Регистрация COM-объекта | HKLM\SOFTWARE\Classes\CLSID\{CLSID}\InprocServer32 |
| Kill bit для COM в Office | HKLM\Software\Microsoft\Office\16.0\Common\COM Compatibility\{CLSID} |
На 32-битном Office в 64-битной Windows дополнительно проверяйте всё, что связано с COM, под
Wow6432Node.
Часто используемые тестовые записи реестра (только для проверки)
Windows Registry Editor Version 5.00
; Только для теста: снять полное отключение ActiveX
[HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security]
"DisableAllActiveX"=dword:00000000
Предупреждение: эти настройки предназначены только для проверки. Постоянное решение — «доверенный канал распространения плюс подпись».
Частые симптомы и способы устранения
| Симптом | Наиболее вероятная причина | Что попробовать в первую очередь |
|---|---|---|
| Кнопка не отвечает после обновления | ActiveX отключён по умолчанию | Панель сообщений → [Включить содержимое] → проверить Trust Center |
| Сбой только на 64-битном Office | 32-битный COM / ActiveX | Уточнить у поставщика наличие версии x64. Если нет — перейти на 32-битный Office |
| Не работает только на определённом ПК | COM не зарегистрирован / регистрация повреждена | Проверить CLSID через reg query → перерегистрировать через regsvr32 |
| DLL есть, но не загружается | Нехватка зависимой DLL / рантайма VC++ | Отследить NAME NOT FOUND через Procmon |
| Сбой при открытии с сетевого ресурса или из вложения письма | Защищённый просмотр / MOTW | Скопировать в локальную папку и сравнить воспроизведение |
| Не работает только часть внутренней веб-интеграции | Не настроен режим IE | Добавить нужный сайт в Enterprise Site List |
| Подписано, но доступ не разрешён | Сертификат не распространён / доверенный издатель не зарегистрирован | Проверить действительность подписи кода и распространение сертификата |
| Поведение меняется при повторном использовании сценариев из эпохи MSI | Переход на модель Click-to-Run | Пересмотреть старые скрипты и подходы, рассчитанные на саморегистрацию |
Рекомендуемые настройки для организаций
Базовый принцип постоянного решения — «не снижать безопасность в целом, а разрешать только необходимое, точечно».
| Пункт | Рекомендация |
|---|---|
| Канал обновлений (Microsoft 365) | Для машин с сильной зависимостью от устаревшего ActiveX — канал ежемесячных корпоративных обновлений (Monthly Enterprise) (изменения проще отслеживать) |
| Разрядность Office | Если поставщик прямо не заявляет о поддержке x64, приоритет — 32-битному Office |
| Доверенные расположения | Доверенные сетевые расположения запрещены как правило. При необходимости — процедура запроса исключения |
| Подпись | Собственные ActiveX / макросы / надстройки должны иметь подпись кода, доверенные издатели управляются централизованно |
| Режим IE | В Enterprise Site List добавляются только нужные URL (избегайте превращения всей инфраструктуры в устаревшую) |
| Проверка перед развёртыванием | Перед боевым выпуском создать pilot-кольцо и проверить фиксированную сборку на репрезентативных документах / машинах |
Пример конфигурации развёртывания Microsoft 365 (32-бит + Monthly Enterprise)
<Configuration>
<Add OfficeClientEdition="32" Channel="MonthlyEnterprise">
<Product ID="O365ProPlusRetail">
<Language ID="ja-jp" />
</Product>
</Add>
<Updates Enabled="TRUE" />
<Display Level="None" AcceptEULA="TRUE" />
</Configuration>
Крайняя мера — восстановление
- Быстрое восстановление / восстановление через Интернет помогает при повреждении настроек и регистрации
- Однако оно не решает несовпадение x86 / x64 и сами проблемы подписи / политик
- Восстановление выполняется в последнюю очередь (если сделать его раньше, диагностические логи будут испорчены)
Быстрый справочник команд
| Цель | Команда |
|---|---|
| Запуск в безопасном режиме | excel /safe / winword /safe |
| Регистрация COM DLL | regsvr32 xxx.dll |
| Отмена регистрации COM DLL | regsvr32 /u xxx.dll |
| Регистрация .NET COM (32-битный Office) | Framework\v4.0.30319\RegAsm.exe xxx.dll /codebase /tlb |
| Регистрация .NET COM (64-битный Office) | Framework64\v4.0.30319\RegAsm.exe xxx.dll /codebase /tlb |
| Резервное копирование реестра | reg export HKCU\... backup.reg /y |
| Включение общего журналирования Office | reg add HKCU\Software\...\Logging /v EnableLogging /t REG_DWORD /d 1 |
| Включение подробного журналирования Click-to-Run | reg add HKLM\SOFTWARE\...\OverRide /v LogLevel /t REG_DWORD /d 3 |
| Запуск средства просмотра событий | eventvwr.msc |
Итог — не перепутайте порядок
Ошибка настройки → несовпадение ОС / разрядности → проблема с COM-объектом → зависимости → различия обновлений
Проблема с ActiveX может выглядеть как «просто проблема Excel», но на деле это пересечение пяти слоёв: безопасность Office по умолчанию + требования поддержки Windows + регистрация COM-объекта + зависимые рантаймы + модель обновлений. Вместо того чтобы бездумно ослаблять настройки, стоит диагностировать сверху вниз — тогда вы придёте к решению, которое вряд ли повторится снова.
Справочные ссылки
- ActiveX controls are disabled by default in Microsoft 365 and Office 2024 — область влияния отключения по умолчанию
- Enable or disable ActiveX settings in Office files — материал, ближе всего к действиям пользователя
- Update history for Office LTSC 2024 and Office 2024 — сравнение сборок, различия до/после обновления
- Overview of update channels for Microsoft 365 Apps — различия между Current / Monthly Enterprise / Semi-Annual
- Release Information for Updates to Microsoft 365 Apps — различия в поведении, связанные с каналом
- Compatibility between the 32-bit and 64-bit versions of Office — критерии решений при работе с активами ActiveX / COM
- Internet Explorer mode in Microsoft Edge — Enterprise Site List и политики
- regsvr32 command — регистрация / отмена регистрации нативного COM
- Regasm.exe (Assembly Registration Tool) — регистрация COM-компонентов на .NET
- Process Monitor (Procmon) — отслеживание NAME NOT FOUND / PATH NOT FOUND
- Process Explorer — состояние загрузки DLL процесса
- Latest supported Visual C++ Redistributable Downloads — где проверить нехватку рантайма VC++
- .NET Framework installation guide — проверка версий .NET Framework
Похожие статьи
Недавние статьи с теми же тегами помогут подробнее изучить близкие темы.
Аутсорсинг и контрактная разработка Windows-приложения: что стоит прояснить перед заказом
Перед тем как заказать аутсорсинг или контрактную разработку Windows-приложения, разберём, что нужно прояснить: доработка существующего П...
Ловушки регистрации и bitness при разработке COM/OCX/ActiveX
Разбираем с практической точки зрения типичные ловушки разработки COM, OCX и ActiveX: 32-бит/64-бит, Visual Studio 2022, regsvr32/Regasm,...
Странная любовь разработчика, или Как я перестал беспокоиться и полюбил Windows
Windows — это хлопотно. Но эти хлопоты — от того, что данная ОС десятилетиями несла на себе реальный бизнес.
Гид по подготовке VBA и внутренних инструментов к отказу от VBScript
Готовимся к поэтапному отказу от VBScript: разбираем инвентаризацию VBA, макросов Excel и внутренних инструментов, статическое обнаружени...
Пример моста COM для вызова 64-битной DLL из 32-битного приложения
Когда 32-битное приложение не может напрямую вызвать 64-битную DLL, их можно связать через мост COM. Рассматриваем этот подход, включая о...
Связанные темы
Эти страницы показывают тему статьи в более широком контексте услуг и решений.
Технические темы Windows
Раздел о разработке Windows, расследовании сбоев и использовании существующих активов.
Миграция ActiveX
Решения о сохранении, обёртке или замене компонентов COM / ActiveX / OCX.
Услуги по этой теме
Статья напрямую связана со следующими услугами.
Использование и перенос существующих активов
Продление жизни и миграция активов Excel / Word / PowerPoint / Visio, использующих ActiveX / OCX / COM, напрямую связаны с нашей поддержкой по использованию и переносу существующих активов.
Расследование ошибок и причин
Проблемы на стыке Office и COM вроде «кнопка, которая раньше работала, вдруг перестала отвечать» — это как раз тема, для которой подходит поиск первопричины с помощью Process Explorer / Procmon / журналов Click-to-Run.
Технические консультации и ревью дизайна
Политику конфигурации, охватывающую разрядность Office, каналы обновлений, доверенных издателей, режим IE и Enterprise Site List, удобно прорабатывать в формате ревью архитектуры перед развёртыванием.
Частые вопросы
Вопросы, которые часто возникают при консультациях по теме статьи.
- Что значит, что ActiveX по умолчанию отключён в Office 2024 и Microsoft 365?
- В Office 2024 и Microsoft 365 элементы управления ActiveX отключены по умолчанию. Если кнопки и формы Excel, а также встроенные объекты Word / PowerPoint, которые раньше работали, после обновления вдруг выглядят «неработающими», причина, как правило, не в поломке программы, а именно в изменении этого значения безопасности по умолчанию. Первый шаг — попробовать нажать «Включить содержимое» на жёлтой панели сообщений при открытии файла и проверить настройки ActiveX в Центре управления безопасностью (Trust Center).
- После обновления Office кнопки ActiveX в Excel перестали отвечать. С чего начать проверку?
- Причины делятся на три большие группы. Первая — изменения настроек безопасности (Trust Center, отключение ActiveX по умолчанию, защищённый просмотр). Вторая — несовпадение разрядности 32-бит / 64-бит (32-битный элемент управления в 64-битном Office). Третья — проблемы регистрации COM или нехватка зависимых DLL / рантаймов (не выполнен regsvr32, отсутствует рантайм VC++). Быстрее всего проверять в этом порядке, сверху вниз. Заодно сразу зафиксируйте название продукта, номер сборки, разрядность Office и сведения об ОС, и проверьте, отличается ли воспроизведение при открытии файла из локальной папки, а не с сетевого ресурса или из вложения письма.
- Почему элемент управления ActiveX не работает только в 64-битном Office?
- Потому что разрядность Office и разрядность COM / ActiveX должны совпадать. 32-битный элемент управления не заработает в 64-битном Office. Уточните у поставщика, есть ли версия x64, а если нет — рассмотрите переход на 32-битный Office. Для COM-компонентов на .NET вместо regsvr32 используется RegAsm: для 32-битного Office — RegAsm из Framework, для 64-битного — из Framework64. Классическая ошибка — несовпадение разрядности RegAsm с разрядностью Office: в реестре регистрация выглядит успешной, но Office компонент не находит.
- Как настроить постоянное использование ActiveX?
- Базовый принцип — не снижать безопасность в целом, а разрешать только то, что действительно нужно, и точечно. Изменение реестра DisableAllActiveX годится исключительно для проверки, а постоянное решение строится на доверенном канале распространения и подписи. Конкретно: подписывайте собственные ActiveX-компоненты / макросы / надстройки, централизованно управляйте доверенными издателями, для Microsoft 365 рассмотрите канал ежемесячных корпоративных обновлений (Monthly Enterprise), где изменения проще отслеживать, и, если поставщик прямо не заявляет о поддержке x64, отдавайте приоритет 32-битному Office. Перед боевым развёртыванием создайте pilot-кольцо и проверяйте фиксированную сборку на репрезентативных документах и машинах.
Об авторе
Страница с профилем автора статьи.
Го Комура
Представитель KomuraSoft LLC
Специализируется на разработке программного обеспечения для Windows, техническом консалтинге и расследовании сбоев, особенно в проектах с унаследованными системами и трудно воспроизводимыми ошибками.
Публичные ссылки