Why ActiveX Stops Working in Office 2024/Microsoft 365 and How to Diagnose It
· Updated: · Go Komura · ActiveX, COM, Office, Microsoft 365, 32bit, 64bit, Windows, Legacy Asset Reuse
Revision history (1 updates, last updated Sep 1, 2026)
A log of the changes made to this article. Where a pre-update version was archived, it stays readable at a permanent DOI link.
- Retranslated as a full translation of the Japanese original. The previous English version was an abridgement that carried only part of the source, so sections, tables, Mermaid diagrams, figure captions and FAQ entries were missing. All of them have been restored to match the Japanese original, and the technical claims are the same as in the Japanese version. Read the version before this update (DOI: 10.5281/zenodo.21614633)
- First published
Cite this article(DOI: 10.5281/zenodo.21614632)
This article is archived on Zenodo. Below are both the DOI that always resolves to the latest version and the DOI pinned to the version you are reading.
Go Komura (2026). Why ActiveX Stops Working in Office 2024/Microsoft 365 and How to Diagnose It. KomuraSoft LLC. https://doi.org/10.5281/zenodo.21614632 https://comcomponent.com/en/blog/2026/04/25/002-office-2024-microsoft-365-activex-troubleshooting/
- DOI (latest version)
- 10.5281/zenodo.21614632
- DOI (this version)
- 10.5281/zenodo.22220477
1. What You Need to Know First
In Office 2024 and Microsoft 365, ActiveX controls are disabled by default. When Excel buttons and forms, or embedded objects in Word / PowerPoint, suddenly appear to “stop working” after an update, the cause is usually not a broken program but a change in security defaults.
The causes fall into three broad categories.
- Security setting changes (Trust Center, ActiveX disabled by default)
- 32-bit / 64-bit mismatch (loading a 32-bit-only control into 64-bit Office)
- Missing COM registration or dependent DLLs / runtimes (regsvr32 never run, missing VC++ runtime)
Field rule of thumb: Working through these from the top, in this order, is the fastest path.
Terms Used in This Article
For IT administrators, here are the terms that appear later in the article without further explanation.
| Term | Meaning |
|---|---|
| bitness | Whether something is a 32-bit or a 64-bit build. Office, Windows, and COM / ActiveX controls each have their own bitness, and Office and the COM component will not work together unless their bitness matches (a separate question from the bitness of Windows) |
| MOTW (Mark of the Web) | The mark that browsers and mail clients attach to a downloaded file to record that it came from the internet. Physically it is an alternate data stream named Zone.Identifier, and while it is present Office opens the file in Protected View and blocks ActiveX and macros. You can clear it with the Unblock option in the file properties or with Unblock-File in PowerShell |
| kill bit | A disabling mechanism that keeps the host from instantiating a control with a particular CLSID. In Office it is set per CLSID under the COM Compatibility key. If an entry exists there, the control will not run even when COM registration is perfectly correct |
| Click-to-Run | The current Office installation method. It assumes virtualized placement and automatic updates, so MSI-era deployment steps and designs that rely on self-registration do not always carry over unchanged |
| Trust Center | The single screen that gathers Office’s security settings. You reach it from File > Options > Trust Center, and the settings themselves sit behind the “Trust Center Settings…” button |
How This Article Is Organized
It is a long article, so read the parts you need. It falls into three large groupings.
| Grouping | Chapters | Contents |
|---|---|---|
| Get the prerequisites straight | Chapters 1-3 | Disablement by default, the difference between Office 2024 and Microsoft 365, the overall isolation flow |
| Isolate from the top down | Chapters 4-9 (Steps 1-6) | Collect environment information -> Trust Center -> IE mode -> COM registration -> dependent DLLs -> log capture |
| Quick references and policy | Chapters 10-15 | Registry / policy quick reference, symptom-based remedies, recommended enterprise settings, command quick reference |
If you are in a hurry, start with Chapter 11, “Common Symptoms and Remedies,” find your symptom there, and jump back to the Step it points to.
In the diagram a solid line marks a relation that always holds and a dashed line marks a conditional one (the conditions are given per relation on the detail page). The full list of relations (24 in total, with evidence and certainty) and the definitions of the main concepts are collected on the knowledge map detail page (in Japanese). Data: JSON-LD / Turtle
2. Office 2024 Family vs Microsoft 365 — What Is Different
| Aspect | Office 2024 family (perpetual license) | Microsoft 365 Apps (subscription) |
|---|---|---|
| Update model | Security / quality updates only. No new features added | Continuous feature updates per channel |
| ActiveX default | Disabled by default | Disabled by default (same) |
| Registry / policy paths | Still 16.0 | Still 16.0 |
| Supported OS (as of 2026) | Windows 11, Server 2025 / 2022, Win10 LTSC | Windows 11, Server 2025 / 2022 are the official requirement. Win10 has a migration grace period through October 2028 |
| Installation method | Click-to-Run (not MSI) | Click-to-Run |
Important: The registry path remains 16.0 even in Office 2024. Searching for 24.0 “because it says 2024” is a classic detour.
A Note on Windows 10
General support for Windows 10 ended on October 14, 2025. Microsoft 365 Apps, however, is in a migration grace period on Windows 10, with security updates provided until October 10, 2028. In other words, the situation looks like this:
- It is not the case that “nothing works at all on Windows 10”
- You are running under the dual premise of “OS out of support, Apps in a grace period”
3. Troubleshooting Overview
flowchart TD
A[Reproduce the symptom] --> B[Collect Office product name, build, bitness, and OS information]
B --> C{Are the OS / Office support prerequisites OK?}
C -- No --> C1[Fix prerequisites: review OS / Office edition / channel]
C -- Yes --> D[Check the Trust Center]
D --> E{Problem with ActiveX settings / Protected View / Trusted Documents?}
E -- Yes --> E1[Fix settings, signing, and distribution design]
E -- No --> F{Depends on legacy Web / IE?}
F -- Yes --> F1[Check IE mode and the site list]
F -- No --> G[Check CLSID / InprocServer32 / TypeLib]
G --> H{Is COM registration healthy?}
H -- No --> H1[regsvr32 / RegAsm / reinstall]
H -- Yes --> I[Check dependent DLLs / .NET / VC++ runtimes]
I --> J{Are the dependencies satisfied?}
J -- No --> J1[Repair and redistribute the relevant runtime]
J -- Yes --> K[Collect logs / Procmon / Process Explorer]
K --> L[Check build deltas and security update deltas]
4. Step 1 — Collect Environment Information
First, always record the following information. The point is to decide based on numbers, not on impressions.
On the Office side
- Check under [File] -> [Account] -> [Product Information]
- Product name (Office 2024 vs Microsoft 365)
- Version and build number (most important)
- Installation type (Click-to-Run)
- Check 32-bit / 64-bit in the product information dialog under [About Excel] / [About Word], and so on
On the Windows side
# Basic OS information
Get-CimInstance Win32_OperatingSystem |
Select-Object Caption, Version, BuildNumber, OSArchitecture
# Executable paths of Office processes
Get-Process WINWORD, EXCEL, POWERPNT, VISIO -ErrorAction SilentlyContinue |
Select-Object ProcessName, Path
How to read the output
The output itself differs from machine to machine, so here are the columns to look at and how to judge them.
| Column | Contents | How to judge |
|---|---|---|
Caption |
The OS edition name | Windows 10 or Windows 11. Use it to confirm the support prerequisites |
Version / BuildNumber |
The OS version and build number | Have the conversation in these numbers, not in “we’re on the latest” |
OSArchitecture |
Whether the OS is 64-bit or 32-bit | This is the bitness of the OS. It is not the bitness of Office |
Path (from Get-Process) |
Where the Office executable lives | On 64-bit Windows, C:\Program Files (x86)\Microsoft Office\... means 32-bit Office, and C:\Program Files\Microsoft Office\... means 64-bit Office |
If Get-Process returns nothing at all, it only means the Office app in question is not running. Open the app you want to check and run the command again. Because -ErrorAction SilentlyContinue is specified, process names that are not running do not raise an error.
You can also read the Office bitness from the app’s own menus. In Excel, go to File -> Account -> About Excel, and the first line of the dialog that opens shows the version, the build number, and either “32-bit” or “64-bit” side by side. Copying that line down verbatim makes vendor inquiries and reproduction work go much faster.
Common pitfalls
| Mistake | Correct approach |
|---|---|
| Settling for “it’s the latest version” | Check the build number. Channel deltas in Microsoft 365 are significant |
| Loading 32-bit-only COM / ActiveX into 64-bit Office | Office bitness and COM bitness must match |
| Assuming it cannot work because it’s Windows 10 | It may still work during the grace period, but the foundation is unstable |
5. Step 2 — Check the Trust Center and Security Settings
What you are doing here is separating “the file itself is being blocked” from “loading the COM component is failing.”
Checklist (in order, from the top)
| # | Item | Where to check | Common cause |
|---|---|---|---|
| 1 | ActiveX message bar | The yellow bar shown when the file opens | Disabled by default. Try [Enable Content] to see whether it works temporarily |
| 2 | Trust Center > ActiveX Settings | [File] > [Options] > [Trust Center] > [Trust Center Settings…] > [ActiveX Settings] | Is it set to “Disable all controls without notification”? |
| 3 | Protected View | Trust Center > Protected View | Files opened from network shares or email attachments get blocked |
| 4 | Trusted Documents | Trust Center > Trusted Documents | Once a file is trusted the warning stops appearing, which makes reproduction machine-dependent |
| 5 | Trusted Publishers | Trust Center > Trusted Publishers | Even with a signature, nothing is allowed unless the certificate has been distributed |
| 6 | Macro Settings | Trust Center > Macro Settings | Macros and ActiveX are separate settings, but they can interact |
Where to look on screen
Instead of screenshots, here is where each thing sits and in what order to click.
- Message bar: right after the file opens, it appears as a wide band between the ribbon and the editing area. If you dismissed it, close the file and reopen it to bring it back.
- ActiveX Settings screen: going to File -> Options -> Trust Center only gets you to a page of explanatory text and a button. The settings themselves live behind the “Trust Center Settings…” button, and in the dialog that opens you pick “ActiveX Settings” from the list on the left. Skip that one hop and you never reach the screen you are after. Microsoft’s own guidance also describes enabling ActiveX as this configuration change, not as a one-time allow from the message bar.
- Protected View / Trusted Documents / Trusted Publishers: all three sit in the same left-hand list inside the Trust Center Settings dialog. Clearing the trusted documents record before a reproduction attempt keeps machine-to-machine differences from creeping in.
Watch the scope of the setting: the ActiveX settings apply not only to the file you currently have open but to every Word / Excel / PowerPoint / Visio file. This is not an “allow this one file” setting. If you loosen it temporarily for an investigation, always put it back.
What to try first
- Copy the problem file to a locally managed folder (for example
C:\Temp) and save it under a different name - Avoid opening it directly from a network share or an email attachment (to rule out Protected View)
- Start Office in safe mode to isolate the influence of add-ins
excel /safe
winword /safe
powerpnt /safe
6. Step 3 — Check Whether It Depends on IE Mode
Sometimes what looks like an “ordinary ActiveX failure” turns out to be Edge’s IE mode not being configured.
- IE mode is not a browser-wide switch. It applies only to the sites registered in the Enterprise Site List
- If only part of your internal web integration fails, check whether that site is actually covered by IE mode
Here is where to look:
- Edge policies: Administrative Templates > Microsoft Edge
- Registry:
HKLM\SOFTWARE\Policies\Microsoft\Edge - Diagnostics page:
edge://compat/iediagnostic
7. Step 4 — Check COM Registration
If the Trust Center is clean, the next thing to verify is whether the COM component itself is registered correctly.
Basic verification commands
:: Check CLSID registration status
reg query "HKLM\SOFTWARE\Classes\CLSID\{YOUR-CLSID-HERE}\InprocServer32" /s
:: Register / unregister a native COM / ActiveX DLL
regsvr32 C:\Path\YourControl.dll
regsvr32 /u C:\Path\YourControl.dll
How to read the result
There are three things to look at in the reg query output.
- Whether the key exists. If it does not, nothing is printed and you get only a “not found” error. That alone settles it: the component is not registered.
- The DLL path stored in the default value. That path is the COM component itself.
- Whether a file actually exists at that path. It is common for an uninstall or a file move to remove the binary while leaving the registration behind.
If you want the check and the verdict in one go, PowerShell reads better.
# Replace with the CLSID you want to inspect (include the braces)
$clsid = '{00000000-0000-0000-0000-000000000000}'
$key = "HKLM:\SOFTWARE\Classes\CLSID\$clsid\InprocServer32"
if (Test-Path $key) {
$server = Get-ItemPropertyValue -Path $key -Name '(default)'
[pscustomobject]@{
CLSID = $clsid
Server = $server
FileExists = Test-Path $server
}
} else {
Write-Host "Not registered: $key was not found"
}
If FileExists is False, the registration survives but the binary is gone. You need a reinstall or a re-registration.
Look in the right place: when you register a 32-bit COM component on 64-bit Windows, the entries land under
HKLM\SOFTWARE\Classes\WOW6432Node\CLSID\{CLSID}instead. Looking only atHKLM\SOFTWARE\Classes\CLSIDfrom 64-bit PowerShell orreg querymakes it look unregistered, so when troubleshooting 32-bit Office, always check underWOW6432Nodeas well.
For COM components built with .NET (important)
regsvr32 cannot be used on .NET assemblies. Use RegAsm.
:: 32bit Office on 64bit Windows -> use the Framework RegAsm
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "C:\Path\YourControl.dll" /codebase /tlb
:: 64bit Office -> use the Framework64 RegAsm
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" "C:\Path\YourControl.dll" /codebase /tlb
A classic way this breaks: “the RegAsm bitness does not match the Office bitness” -> registration succeeds in the registry, but Office cannot find the component.
8. Step 5 — Check Dependent DLLs and Runtimes
When “the main DLL is there but it will not load,” the usual explanation is a missing dependency.
Runtimes that go missing most often in the field
| Commonly missing | How to check |
|---|---|
| Visual C++ Redistributable packages (2013, 2015-2022) | Review the list under Control Panel > Programs and Features |
| .NET Framework 4.8.1 | reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" |
| Dependent DLLs (vendor-specific) | Check with Process Explorer / Procmon |
Low-level investigation tools
| Tool | Purpose |
|---|---|
| Process Explorer | Inspect the list of DLLs loaded into a process |
| Procmon | Track NAME NOT FOUND / PATH NOT FOUND / ACCESS DENIED in real time |
Capture a Procmon log while the problem reproduces and filter on NAME NOT FOUND, and you can see at a glance which DLL or registry key could not be found.
How to set up the filters, how to strip out the noise, and which events to read first are written up as a procedure in A Practical Guide to Process Monitor (ProcMon). And if the combination of registration and bitness is what has you stuck, Registration and Bitness Pitfalls in COM/OCX/ActiveX Development covers the same problem from the developer’s side.
9. Step 6 — Capture Logs for the Final Check
If the cause is still unidentified at this point, turn logging on and catch the moment it reproduces.
Enable general Office logging
reg add HKCU\Software\Microsoft\Office\16.0\Common\Logging /v EnableLogging /t REG_DWORD /d 1
Enable detailed Click-to-Run logging
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
Logs are written to %windir%\temp or %temp%.
Use Event Viewer alongside
eventvwr.msc
- Check Windows Logs > Application
- .NET Runtime and SideBySide errors are often the decisive clue
Turn logging back off after the investigation (don’t forget)
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
10. Key Registry / Policy Quick Reference
Four paths worth memorizing
| Purpose | Path |
|---|---|
| Root of Office policies | HKLM\SOFTWARE\Policies\Microsoft\Office\16.0 |
| Checking the blanket ActiveX disable | HKCU\Software\Microsoft\Office\Common\Security\DisableAllActiveX (1 = disabled, 0 = lifted) |
| COM component registration | HKLM\SOFTWARE\Classes\CLSID\{CLSID}\InprocServer32 |
| Office COM kill bit | HKLM\Software\Microsoft\Office\16.0\Common\COM Compatibility\{CLSID} |
With 32-bit Office on 64-bit Windows, check under
Wow6432Nodeas well for anything COM-related.
Frequently used test registry entries (verification only)
Windows Registry Editor Version 5.00
; Test only: lift the blanket ActiveX disable
[HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security]
"DisableAllActiveX"=dword:00000000
Warning: these settings are for verification only. Handle the permanent fix through “a trusted distribution path plus signing.”
11. Common Symptoms and Remedies
| Symptom | Most likely cause | First thing to try |
|---|---|---|
| Button unresponsive after an update | ActiveX disabled by default | Message bar -> [Enable Content] -> check the Trust Center |
| Fails only on 64-bit Office | 32-bit-only COM / ActiveX | Ask the vendor whether an x64 build exists. If not, switch to 32-bit Office |
| Fails only on one specific PC | COM not registered / registration corrupted | Check the CLSID with reg query -> re-register with regsvr32 |
| DLL exists but won’t load | Missing dependent DLL / VC++ runtime | Track NAME NOT FOUND with Procmon |
| Fails from network shares or email attachments | Protected View / MOTW | Copy to a local folder and compare behavior |
| Only part of internal web integration fails | IE mode not configured | Add the target site to the Enterprise Site List |
| Signed but still not allowed | Certificate not distributed / Trusted Publisher not registered | Verify code-signing validity and certificate distribution |
| Behavior changes when MSI-era deployment steps are reused | The move to a Click-to-Run premise | Revisit old scripts and designs that assume self-registration |
12. Recommended Settings for Enterprises
The basis of a permanent fix is not “lower security across the board” but “allow only what is needed, narrowly.”
| Item | Recommendation |
|---|---|
| Update channel (Microsoft 365) | For machines with heavy legacy ActiveX dependence, use the Monthly Enterprise Channel (changes are easier to track) |
| Office bitness | Unless the vendor explicitly states x64 support, give priority consideration to 32-bit Office |
| Trusted Locations | Trusted locations on the network are prohibited as a rule. When one is genuinely needed, use an exception-request process |
| Signing | Code-sign internally distributed ActiveX controls / macros / add-ins and manage Trusted Publishers centrally |
| IE mode | Register only the required URLs in the Enterprise Site List (avoid pushing the whole estate into legacy mode) |
| Pre-deployment validation | Before production rollout, build a pilot ring and run fixed-build validation on representative documents / representative machines |
Example Microsoft 365 deployment configuration (32-bit + 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>
13. Last Resort — Repair
- Quick Repair / Online Repair is effective against broken settings and broken registration
- It does not, however, solve x86 / x64 mismatches or signing / policy problems themselves
- Repair goes last (running it first contaminates your investigation logs)
14. Command Quick Reference
| Purpose | Command |
|---|---|
| Start in safe mode | excel /safe / winword /safe |
| Register a COM DLL | regsvr32 xxx.dll |
| Unregister a COM DLL | regsvr32 /u xxx.dll |
| Register a .NET COM component (32-bit Office) | Framework\v4.0.30319\RegAsm.exe xxx.dll /codebase /tlb |
| Register a .NET COM component (64-bit Office) | Framework64\v4.0.30319\RegAsm.exe xxx.dll /codebase /tlb |
| Back up the registry | reg export HKCU\... backup.reg /y |
| Enable general Office logging | reg add HKCU\Software\...\Logging /v EnableLogging /t REG_DWORD /d 1 |
| Enable detailed Click-to-Run logging | reg add HKLM\SOFTWARE\...\OverRide /v LogLevel /t REG_DWORD /d 3 |
| Launch Event Viewer | eventvwr.msc |
15. Conclusion — Don’t Get the Order Wrong
misconfiguration -> OS / bitness mismatch -> COM component problem -> dependencies -> update deltas
Even when an ActiveX problem looks like “just an Excel issue,” it is really a problem where five layers intersect: Office’s default security + the Windows support prerequisites + COM component registration + dependent runtimes + the update model. Rather than loosening settings at random, isolate from the top down and you will land on a repair that is far less likely to come back.
Reference Links
- ActiveX controls are disabled by default in Microsoft 365 and Office 2024 — scope of impact of the default disablement
- Enable or disable ActiveX settings in Office files — the resource closest to user operations
- Update history for Office LTSC 2024 and Office 2024 — build comparisons, pre/post-update deltas
- Overview of update channels for Microsoft 365 Apps — differences between Current / Monthly Enterprise / Semi-Annual
- Release Information for Updates to Microsoft 365 Apps — channel-driven behavioral differences
- Compatibility between the 32-bit and 64-bit versions of Office — decision criteria when ActiveX / COM assets are involved
- Internet Explorer mode in Microsoft Edge — Enterprise Site List and policies
- regsvr32 command — registering / unregistering native COM
- Regasm.exe (Assembly Registration Tool) — registering COM components built with .NET
- Process Monitor (Procmon) — tracking NAME NOT FOUND / PATH NOT FOUND
- Process Explorer — DLL load status of a process
- Latest supported Visual C++ Redistributable Downloads — where to check for missing VC++ runtimes
- .NET Framework installation guide — checking .NET Framework versions
Related Articles
Recent articles sharing the same tags. Deepen your understanding with closely related topics.
What Is an OLE Object? — How Embedding and Linking Work and the Pitfalls in Business Documents
An OLE object is what embeds an Excel table in Word. Learn embedding vs. linking, compound files, In-Place Activation, broken links, bloa...
Windows App Outsourcing and Custom Software Development: What to Sort Out Before You Ask
Before commissioning Windows app outsourcing or custom software development, here is how to sort out existing software modification, devi...
Registration and Bitness Pitfalls in COM/OCX/ActiveX Development
A practical look at the 32bit/64bit, Visual Studio 2022, regsvr32/Regasm, administrator-rights, HKCR, and STA/MTA pitfalls that trip up C...
Calling COM and .NET from PowerShell — Widening What Your Scripts Can Reach
A practical guide to calling .NET classes from PowerShell, embedding C# and Win32 APIs with Add-Type, driving COM, cleaning up leftover E...
A Developer's Strange Love, or: How I Learned to Stop Worrying and Love Windows
Windows is a hassle. But that hassle is the hassle of an OS that has carried real-world business on its back.
Related Topics
These topic pages place the article in a broader service and decision context.
Windows Technical Topics
Topic hub for KomuraSoft LLC's Windows development, investigation, and legacy-asset articles.
ActiveX Migration
Topic page for staged decisions around keeping, wrapping, or replacing COM / ActiveX / OCX assets.
Where This Topic Connects
This article connects naturally to the following service pages.
Legacy Asset Reuse & Migration Support
Extending and migrating Excel / Word / PowerPoint / Visio assets that use ActiveX / OCX / COM components overlaps directly with our legacy asset reuse and migration support themes.
Bug Investigation & Root Cause Analysis
Office-plus-COM issues like 'a button that used to work suddenly stopped responding' are exactly the kind of problem suited to root-cause isolation with Process Explorer / Procmon / Click-to-Run logs.
Technical Consulting & Design Review
Configuration policy spanning Office bitness, update channels, Trusted Publishers, IE mode, and the Enterprise Site List is easy to organize as a pre-deployment design review.
Frequently Asked Questions
Common questions about the topic of this article.
- What does it mean that ActiveX is disabled by default in Office 2024 and Microsoft 365?
- In Office 2024 and Microsoft 365, ActiveX controls are disabled by default. When Excel buttons and forms, or embedded objects in Word / PowerPoint, that used to work suddenly appear to stop working after an update, the cause is usually not a broken program but this change in security defaults. The first step is to choose Enable Content on the yellow message bar that appears when you open the file, see whether the control works temporarily, and then check the ActiveX Settings in the Trust Center.
- An ActiveX button in Excel stopped responding after an Office update. What should I check first?
- The causes fall into three broad categories. First, a change in security settings (Trust Center, ActiveX disabled by default, Protected View). Second, a 32-bit / 64-bit mismatch (a 32-bit-only control loaded into 64-bit Office). Third, missing COM registration or missing dependent DLLs / runtimes (regsvr32 never run, VC++ runtime absent). Working through these from the top, in that order, is the shortest path. Along with that, record the product name, build number, Office bitness, and OS information up front, and compare behavior from a local folder instead of opening the file directly from a network share or an email attachment.
- Why does an ActiveX control fail only on 64-bit Office?
- Because the bitness of Office and the bitness of the COM / ActiveX component have to match. A 32-bit-only control will not run in 64-bit Office. Ask the vendor whether an x64 build exists, and if there is none, consider switching to 32-bit Office. For COM components built with .NET, use RegAsm rather than regsvr32: the Framework RegAsm for 32-bit Office and the Framework64 RegAsm for 64-bit Office. When the RegAsm bitness does not line up with Office, you hit the classic failure where registration succeeds in the registry but Office still cannot find the component.
- How should I configure things so that ActiveX works permanently?
- The principle is to allow only what is needed, narrowly, rather than lowering security across the board. Changing the DisableAllActiveX registry value is strictly for verification; the permanent fix comes from a trusted distribution path plus signing. Concretely, code-sign the ActiveX controls, macros, and add-ins you distribute internally and manage Trusted Publishers centrally, consider the Monthly Enterprise Channel on Microsoft 365 because its changes are easier to track, and give priority consideration to 32-bit Office unless the vendor explicitly states x64 support. Before rolling out to production, build a pilot ring and validate against a fixed build on representative documents and representative machines.