The Error Message
When working with Excel Macros or VBA, you might encounter this specific popup:
Run-time error '429':
ActiveX component can't create object
This error typically triggers when your code attempts to create an instance of a COM object or an external application (like Outlook, Word, or a FileSystemObject) but the Windows operating system cannot find or instantiate that component.
Common Causes
Error 429 is rarely about a typo in your code; it is almost always a configuration issue between VBA and the Windows Registry. Common reasons include:
- The required DLL or OCX file is not registered in Windows.
- A missing library in the VBA References list.
- A version mismatch between 32-bit and 64-bit Office.
- Corruption in the Office installation or the specific ActiveX component.
- The target application (e.g., Outlook) is not installed on the machine running the code.
Step 1: Identify the Failing Line
First, click Debug when the error appears. VBA will highlight the line causing the failure. Usually, it looks like one of these:
' Scenario A: Late Binding
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Scenario B: Early Binding
Set objOutlook = New Outlook.Application
If the error occurs on CreateObject, Windows cannot find the Program ID (ProgID) in the registry. If it happens on New, there is a problem with your library references.
Step 2: Register the Component Manually
If you are using a standard component like Scripting.FileSystemObject or a custom DLL, the underlying file might need to be re-registered. This is a common fix for environments where software was recently updated or moved.
- Open the Command Prompt as Administrator.
- Type the following command for 64-bit Windows (for common 32-bit components):
regsvr32.exe C:\Windows\SysWOW64\scrrun.dll
For 64-bit components or on 32-bit systems:
regsvr32.exe C:\Windows\System32\scrrun.dll
Note: Replace scrrun.dll with the specific DLL you are trying to use (e.g., dao360.dll for DAO).
Step 3: Check VBA References
If you are using "Early Binding" (declaring specific types like Dim app as Outlook.Application), VBA needs a valid reference to the library file (.tlb, .olb, or .dll).
- In the VBA Editor, go to Tools > References.
- Look for any items marked as MISSING: [Library Name].
- If you see a missing reference, uncheck it.
- Scroll down to find the correct version of that library currently installed on your system and check it.
- Click OK and try running the code again.
Step 4: Handle 32-bit vs 64-bit Conflicts
This is a frequent headache for developers moving from older Office versions to Office 365 64-bit. Some ActiveX components (like the Common Controls mscomctl.ocx) only work in 32-bit Excel.
If your code relies on a 32-bit ActiveX control, it will throw Error 429 in a 64-bit Excel environment. In this case, you have two choices:
- Downgrade Office to the 32-bit version (recommended for legacy enterprise apps).
- Update your code to use a 64-bit compatible alternative (e.g., using
Win64API declarations or built-in UserForm controls).
Step 5: Repair Office via /regserver
If Excel itself is struggling to communicate with other Office apps (like Word or Outlook), you can force Excel to rewrite its registry keys without a full reinstall.
- Close all Office applications.
- Press
Win + Rto open the Run dialog. - Type the following and press Enter:
excel.exe /regserver
The screen might flicker for a moment while Excel resets its registration. This often fixes automation errors between Excel and Word/Outlook.
Verification Steps
To confirm the fix, create a new module and run this test script. It attempts to create a FileSystemObject, which is the most common cause of Error 429.
Sub TestActiveXFix()
On Error GoTo ErrorHandler
Dim fso As Object
' Attempt to create the object
Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox "Success! ActiveX component created successfully.", vbInformation
Set fso = Nothing
Exit Sub
ErrorHandler:
MsgBox "Fix failed. Error " & Err.Number & ": " & Err.Description, vbCritical
End Sub
If this script runs and shows the "Success" message, your system's ActiveX registration for core scripting libraries is functional.
Pro Tips
- Use Late Binding for Distribution: If you are sharing your Excel file with others, use
CreateObject("Library.Class")instead of adding References. This avoids the "Missing Reference" error on machines with different software versions. - Check Permissions: Sometimes, Error 429 occurs because the user doesn't have permission to access the specific DLL file or the registry key. Ensure the user has standard user rights to
C:\Windows\System32. - Anti-Virus Blocks: Some aggressive anti-virus settings block the creation of scripting objects (especially
WScript.ShellorFileSystemObject). If the error persists, check your security logs.

