Fix Class Not Registered Error for 32-Bit DLL in Excel VBA
Question details
The user is encountering a 'Class not registered' error in Excel VBA when attempting to instantiate an object from a 32-bit DLL component.

- Product
- Microsoft Excel
- Device & OS
- Windows
- Scenario
- Running an Excel macro in an XLSB file that utilizes a 32-bit CDDBControl DLL (e.g., CddbID3Tag) for MP3/ID3 metadata manipulation.
- Observed behavior
- VBA execution halts with a 'Class not registered' runtime error when executing the instantiation line (e.g., Dim id3Tag As New CddbID3Tag), typically because the 64-bit Excel application cannot load the 32-bit COM DLL.
Verify your Microsoft Excel architecture by navigating to File > Account > About Excel. Knowing whether you are running a 32-bit or 64-bit version of Excel is crucial for resolving DLL compatibility issues.
Resolve the 32-bit and 64-bit Architecture Mismatch
A 64-bit version of Microsoft Office cannot instantiate a 32-bit ActiveX or COM DLL. You must ensure the DLL's bitness matches your Office installation.
In-process COM components (DLLs) must run in the same memory space as the host application. Because of this architectural restriction, a 64-bit host like 64-bit Excel simply cannot load a 32-bit DLL, resulting in the 'Class not registered' error regardless of successful system registration.
Open Excel and go to File > Account. Click on 'About Excel' and look at the top line to see if it specifies '32-bit' or '64-bit'.
If you are running 64-bit Excel, check the software provider's website to see if a 64-bit release of your CDDBControl or ID3 metadata DLL is available, and register it.
If no 64-bit version of the DLL exists (which is common for older libraries from the 1999-2000 era), your only native solution to keep using the macro is to uninstall 64-bit Microsoft Office and install the 32-bit version instead.
Correctly Register the 32-bit DLL on 64-bit Windows
If you are running 32-bit Excel on a 64-bit Windows system, the error may occur because the DLL was registered with the wrong version of the regsvr32 tool.
Need a reliable and flexible alternative for your spreadsheets?
Dealing with strict architecture limitations and COM DLL errors in Microsoft Office can disrupt your workflow. Try WPS Office, a highly compatible, lightweight, and free alternative that supports VBA macros and handles your existing Excel files seamlessly.
- 1. Download the installer: Visit the official WPS Office website and download the free installation package.
- 2. Install WPS Office: Run the installer and follow the on-screen instructions to set up the suite on your Windows PC.
- 3. Open your macro-enabled files: Launch WPS Spreadsheets and open your .xlsb or .xlsm files to continue working with your VBA projects.

Frequently Asked Questions
Can I force 64-bit Excel to run a 32-bit DLL?
No, 64-bit Excel cannot natively load a 32-bit in-process COM DLL. You must either use a 64-bit version of the DLL, switch to 32-bit Excel, or use complex out-of-process COM surrogate workarounds which are generally not practical for standard VBA macros.
Why does my DLL show up in the VBA References list but still fail?
The VBA editor reads the Windows registry to populate the References list. Even if a 32-bit DLL is correctly registered and appears in the list, the 64-bit Excel runtime environment will still fail to instantiate it in memory, resulting in the 'Class not registered' error.
How do I know if my DLL is 32-bit or 64-bit?
You can check the DLL's architecture using third-party dependency walker tools, or by inspecting the file properties. If the DLL was created around 1999-2000, it is almost certainly a 32-bit component, as 64-bit Office did not exist at that time.




