Legacy COM add-ins are one of the most common pain points when organizations upgrade from Windows 10 to Windows 11. Add-ins that loaded reliably for years suddenly fail silently, crash Excel on startup, or show as disabled. This guide covers the root causes, the diagnostic steps, and both temporary and permanent fixes — including when the right answer is to migrate the underlying Excel files rather than fight the add-in.
COM (Component Object Model) add-ins are DLL files that extend Excel, Access, or other Office applications. Unlike VBA add-ins (.xlam files) that run inside Excel's VBA engine, COM add-ins are compiled native code — typically written in C++, C#, or VB.NET — that runs as a separate DLL loaded into the Office process.
COM add-ins are used for:
Many organizations have in-house COM add-ins written by developers who left years ago. When these add-ins break, there's often no one who knows how to fix them.
This is the most common cause. Office 365 defaults to the 64-bit version. A COM add-in compiled as a 32-bit DLL cannot be loaded by a 64-bit process. This isn't a setting — it's a fundamental architecture constraint. A 64-bit Excel process loading a 32-bit DLL would create a process boundary violation that Windows doesn't permit.
If your organization was running 32-bit Office on Windows 10 and upgraded to 64-bit Office 365 on Windows 11, every 32-bit COM add-in is now broken.
Windows 11 changed several aspects of how COM components are registered and located. Legacy add-ins that relied on specific registry paths (HKEY_CLASSES_ROOT\CLSID\...) may find that their expected registration entries behave differently or are absent after a clean Windows 11 install.
Windows 11 enhanced User Account Control and Protected Mode. COM add-ins that previously ran with implicit elevated permissions on Windows 10 may be denied access to protected registry keys or system directories on Windows 11 without an explicit manifest declaring the required permission level.
Legacy COM add-ins compiled against old versions of the Microsoft C Runtime (MSVCRT.dll, MSVCR71.dll, MSVCR80.dll, etc.) may fail if those runtime redistributables aren't present on the Windows 11 machine. Modern Windows 11 installations don't include old VC++ redistributables by default.
LegacyLeaps scans your .xls files and identifies every COM add-in reference and ActiveX control — so you know exactly what you're dealing with before attempting migration.
Run the Free ScanWhen Excel detects that a COM add-in is crashing or causing problems, it automatically disables it. To check:
COM add-in failures often write errors to the Windows Event Log. Open Event Viewer (search "Event Viewer" in Start), go to Windows Logs → Application, and filter by Source = "Excel" or look for errors around the time Excel failed to load the add-in.
; In PowerShell — check if your DLL is 32 or 64-bit:
$dllPath = "C:\Path\To\YourAddIn.dll"
$bytes = [System.IO.File]::ReadAllBytes($dllPath)
$peOffset = [BitConverter]::ToInt32($bytes, 0x3C)
$machine = [BitConverter]::ToUInt16($bytes, $peOffset + 4)
switch ($machine) {
0x014c { "32-bit (x86)" }
0x8664 { "64-bit (x64)" }
default { "Unknown: 0x" + $machine.ToString("X4") }
}
| Scenario | Fix |
|---|---|
| 32-bit add-in, 64-bit Office | Obtain 64-bit version of add-in; or switch to 32-bit Office 365 (not recommended) |
| Add-in appears in Disabled Items | Re-enable from Disabled Items list; check Event Log for root cause |
| Missing C++ redistributable | Install the matching VC++ Redistributable package from Microsoft |
| COM registration error | Re-run the add-in installer as administrator; or manually run regsvr32 YourAddin.dll |
| ActiveX control missing in .xls file | Migrate the file to .xlsx/.xlsm — LegacyLeaps re-registers control references |
| In-house add-in, source code available | Recompile targeting x64 with Visual Studio; update old API calls |
| In-house add-in, no source code | Consider replacing COM automation with VBA or modern Excel features |
For add-ins that were written in the early 2000s, the question isn't always "how do I fix this" — it's "does this add-in still need to exist?" Many legacy COM add-ins were created to:
A migration audit that asks "what does this add-in actually do?" often reveals that the functionality can be rebuilt in modern Excel with no COM component at all.
Related but distinct: some .xls files have embedded ActiveX controls (command buttons, list boxes, combo boxes on worksheets or UserForms) that aren't COM add-ins but are COM objects. These controls have their own compatibility issues on Windows 11.
When LegacyLeaps migrates a .xls file with ActiveX controls to .xlsx or .xlsm format, it:
For more on ActiveX controls specifically, see Excel ActiveX Controls in Windows 11: What's Breaking and Why. For a broader look at Windows 11 Office compatibility, see the Windows Upgrade Survival Guide for Office Files.
LegacyLeaps's free scan identifies every COM reference, ActiveX control, and external add-in dependency in your .xls files before you migrate anything.
Download Free ScannerPractical fixes for legacy Excel and Access problems. No spam.