Runtime Error 429: “ActiveX component can't create object,” explained and fixed

Error 429 — “ActiveX component can't create object” — means VBA tried to start a component (a library, a DLL, an automation object) and Windows couldn't supply it. The component is missing, unregistered, broken, or built for the other flavour of Office — 32-bit versus 64-bit.

What it means

Calls like CreateObject("Scripting.FileSystemObject") or referencing an external library ask Windows to load a registered component. Registration is the key word: the file can be sitting on the disk and still be unusable until it's registered, and a component built for 32-bit Windows cannot load into 64-bit Office at all. Error 429 is the sound of that request failing.

The usual causes, most common first

  1. A referenced library is missing — in the VBA editor, Tools → References shows one marked MISSING:. Common after moving a workbook to a new PC.
  2. 32-bit / 64-bit mismatch — the component is 32-bit but Office is 64-bit (or the reverse). Very common with older DLLs and OCX controls.
  3. The component was never registered — copied manually instead of installed, or registration was removed by a cleanup tool.
  4. The application behind the object isn't installed or is broken — automating Outlook, Word, or a third-party program that isn't really there (or whose install is damaged).
  5. Permissions or policy — some objects (notably Scripting.FileSystemObject on locked-down machines) are blocked by IT policy.

The fix, in order

  1. Check References first. VBA editor → Tools → References. Untick anything marked MISSING, or browse to its real location. This alone clears a large share of 429s.
  2. Note which object fails. Click Debug, find the CreateObject(...) or New ... line — the ProgID in quotes names the component to fix.
  3. Repair the parent application. If the object belongs to Office or another installed program: Windows Settings → Apps → the app → Modify → Repair. For Office, run an Online Repair if Quick Repair doesn't clear it.
  4. Re-register a DLL/OCX manually (only when its installer is unavailable): open Command Prompt as administrator, and register with the matching-bitness tool —
    32-bit file on 64-bit Windows:  C:\Windows\SysWOW64\regsvr32.exe "C:\path\file.dll"
    64-bit file:                    C:\Windows\System32\regsvr32.exe "C:\path\file.dll"
    A “succeeded” message should appear. Note that SysWOW64 holds the 32-bit tools — the names are backwards from intuition.
  5. Match bitness. If the component only exists as 32-bit and Office is 64-bit, no registration trick bridges that. The real options are installing the 64-bit version of the component, or (last resort, with IT's blessing) using 32-bit Office.
Never download a lone DLL from a “DLL download” site. Wrong versions, malware, and licensing problems ride along. Get the component from the software maker's installer or a repair of the parent app.

If it still happens

Test the object outside the macro: press Win+R, run the parent application directly. If the application itself fails to start, the macro was never the problem — repair or reinstall that application. If the object works everywhere except one workbook, the workbook's references are stale: open a fresh workbook, move the modules across, and re-add references cleanly.

Common questions

Is error 429 a virus? No. It's a missing or mismatched software component. It appears after PC migrations, Office upgrades (especially 32-bit to 64-bit), and partial uninstalls.

What is the single most common cause? A MISSING reference after moving to a new computer, followed closely by 32-bit components meeting 64-bit Office.

Related errors

Runtime Error 438 · Runtime Error 339 · Runtime Error 1004