"ActiveX component can't create object" error message when you run code that calls the Common Dialog Control (Comdlg32.ocx)


When you run code that calls the Common Dialog Control (Comdlg32.ocx) on a computer other than the one where the code was developed, you may receive the following error message:
Run-time error 429: ActiveX component can't create object.


This problem can occur if the following conditions are true:
  • The control is called from Visual Basic for Applications code by using the New CommonDialog command.
  • The computer from where you are running the code has a run-time license instead of a design-time license for this control.
With a run-time license, you can load the control, but you cannot create or insert it. The design-time license for this control is included with the Microsoft Office 2000 Developer Edition, Microsoft Visual Basic 6.0, and Microsoft Visual Studio. It is not included with other versions of Microsoft Office 2000.


To work around this problem, wrap the control inside another control, such as a UserForm. To do this, follow these steps:
  1. In the Visual Basic Editor, add a UserForm to your project.
  2. Insert a common dialog control on the UserForm. For example, use the following code to call the common dialog control on the UserForm:
       Sub test()
    End Sub
  3. Save the workbook.
Because the control is wrapped in the UserForm and it resides inside the project, you can now call it in run-time mode.

Article ID: 281848 - Last Review: Jan 29, 2007 - Revision: 1