VBA & Macro Problems

Fix MSCOMCTL.OCX ListView Errors in 64-Bit Excel VBA

Camila MilosovichCamila Milosovich Oct 23, 2026 870 views

Question details

Users encounter missing control or compatibility errors when attempting to use the MSCOMCTL.OCX ListView control in a 64-bit Excel VBA environment.

Fix MSCOMCTL.OCX ListView Errors in 64-Bit Excel VBA
Product
Microsoft Excel
Device & OS
Windows
Scenario
Running or editing an Excel VBA macro that relies on the legacy ListView ActiveX control on a computer with a 64-bit installation of Microsoft Office.
Observed behavior
VBA throws a compile error or run-time error stating that the MSCOMCTL.OCX object library is invalid, missing, or unregistered, preventing the macro from executing.
Before you start

Verify whether your installed version of Microsoft Office is 32-bit or 64-bit, as 32-bit ActiveX controls like MSCOMCTL.OCX cannot natively run in a 64-bit Office environment.

Solution 1Recommended

Replace the Legacy ListView Control with a Native ListBox

The most robust long-term solution for 64-bit Excel is to remove the incompatible 32-bit MSCOMCTL.OCX reference and replace the ListView with a standard VBA ListBox.

Since 64-bit Microsoft Office applications cannot load 32-bit OCX files, simply copying or registering MSCOMCTL.OCX in the Windows system folders will not resolve the issue within Excel. Adapting your VBA code to use native 64-bit compatible controls ensures cross-platform reliability.

1
Open the VBA Editor

Press ALT + F11 in Excel to open the Visual Basic for Applications (VBA) editor.

2
Remove the Missing Reference

Navigate to Tools > References. Look for any item marked as 'MISSING: Microsoft Windows Common Controls' (MSCOMCTL.OCX) and uncheck the box next to it. Click OK.

3
Update the UserForm

Open your UserForm in the Project Explorer. Delete the broken ListView control and drag a standard 'ListBox' from the Toolbox onto your form.

4
Modify the VBA Code

Update your VBA script to interact with the new ListBox. Replace ListView-specific methods (like ListItems.Add) with standard ListBox methods (like AddItem or assigning an array to the List property).

Replace the Legacy ListView Control with a Native ListBox
Alternative Workaround: If rewriting the code is not feasible, the only other way to use MSCOMCTL.OCX is to completely uninstall 64-bit Microsoft Office and install the 32-bit version, which natively supports 32-bit legacy ActiveX controls.
Free Microsoft Office alternative

Try WPS Office for Lightweight, Hassle-Free Spreadsheet Management

Struggling with complex 64-bit architecture errors and legacy ActiveX control issues in Microsoft Office? WPS Office provides a highly compatible, streamlined alternative that supports standard spreadsheet formats and macro functionalities without the heavy system footprint.

Seamlessly opens and edits Microsoft Excel formats (.xlsx, .xls, .xlsm).Lightweight installation that avoids bloated registry and deep system architecture conflicts.Familiar and intuitive user interface requiring zero learning curve.Free to use with comprehensive tools for all your daily office tasks.
microsoft office alternative - wps office

Frequently Asked Questions

Why does MSCOMCTL.OCX work on my old computer but not my new one?

Your new computer likely has the 64-bit version of Microsoft Office installed. MSCOMCTL.OCX is a 32-bit legacy file. Even if your Windows operating system is 64-bit, a 64-bit Office application cannot load a 32-bit ActiveX control.

Can I fix this by registering the OCX file using regsvr32 in Windows?

Registering MSCOMCTL.OCX via the SysWOW64 directory using the command prompt will successfully register the file for Windows, but it will not make it accessible to 64-bit Excel. Excel 64-bit fundamentally requires 64-bit libraries.

What is the best native VBA replacement for a ListView?

A standard VBA ListBox is the most reliable replacement. While it lacks some advanced visual features of a ListView (like built-in column header sorting), it is natively supported in both 32-bit and 64-bit Office environments without requiring external OCX dependencies.