Fix Run-time error '429': ActiveX component can't create object in Excel VBA

intermediate📊 Microsoft Excel2026-05-26| Windows 10/11, Microsoft Excel 2016/2019/2021/365 (32-bit and 64-bit)

Error Message

Run-time error '429': ActiveX component can't create object
#vba#activex#com#runtime-error#registry

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 Win64 API 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 + R to 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.Shell or FileSystemObject). If the error persists, check your security logs.

Related Error Notes