MORE INFORMATION
Microsoft provides programming examples for illustration only, without warranty either
expressed or implied, including, but not limited to, the implied warranties of
merchantability and/or fitness for a particular purpose. This article assumes
that you are familiar with the programming language being demonstrated and the
tools used to create and debug procedures. Microsoft support professionals can
help explain the functionality of a particular procedure, but they will not
modify these examples to provide added functionality or construct procedures to
meet your specific needs. If you have limited programming experience, you may
want to contact a Microsoft Certified Partner or the Microsoft fee-based
consulting line at (800) 936-5200. For more information about Microsoft Certified
Partners, please visit the following Microsoft Web site:
For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site:
When you distribute a VBA form with an ActiveX control and then attempt to use the distributed form on the new computer, you may receive an error message similar to either of the following:
Object not found.
There is no object in this control.
This issue occurs when the ActiveX control is not correctly distributed to the new computer. Design-time ActiveX controls for developers are available either from Visual Basic or the Office Developer Edition. Both provide a Setup Wizard to package an Office solution for distribution. It is a common mistake of Office solution developers to distribute Office documents that reference an ActiveX control without properly distributing the control.
When you distribute an ActiveX control with your runtime application, include the .ocx file for the ActiveX control and any .dll files or other supporting files that are needed by the control.
To make this easier, the Package and Deployment Wizard supports the use of dependency (.dep) files. The .dep file for an ActiveX control contains information that specifies the files that are required to use the control. Each ActiveX control that is supplied with Microsoft Office 2000 Developer (MOD) has a corresponding .dep file.
Distribute ActiveX Controls with Visual Basic
When you distribute an Office solution that uses ActiveX controls, it is necessary to distribute runtime versions of the control. One way to do this is to create a sample Visual Basic application that references the control, and then use the Package Deployment Wizard in Visual Basic to properly distribute the runtime version of the control and properly register the control.
Create Sample Visual Basic Application with Control
- Start Visual Basic, and then create a new Standard.exe project.
- If your control is not visible on the Toolbox, right-click the Toolbox, and then click Components. On the Controls tab, click to select the check box next to your control, and then click OK.
- On the Toolbox, double-click your control.
- On the File menu, click Save Project, and then click Save twice.
- On the File menu, click Make Project1.exe, and then click OK.
- On the File menu, click Exit.
Use Package and Deployment Wizard to Distribute Control
- Start the Package and Deployment Wizard.
- Click Browse, select the project, and then click Open.
- Click Package.
- Click Standard Setup Package, and then click Next.
- Select a location in which to save the package, and then click Next.
- If you are prompted about missing dependency information, click to select the check box next to your control, and then click OK.
- Click Next, select any options for the size of the .cab files, and then click Next.
- In the Installation title box, type a title for the setup program, and then click Finish.
- Quit the Package and Deployment Wizard.
The .cab files, Setup.exe file, and Setup.lst files can now be used on other computers to install and register your ActiveX control.
NOTE: After Setup has been run on a non-developer computer, you cannot create another ActiveX control of the same type that was distributed. This is by design, because only the runtime version of the control has been registered.
Distribute ActiveX Control After Upgrades
When you reference an ActiveX control from VBA, and then upgrade to a newer version of the control, you need to re-reference the ActiveX control on a form before you try to distribute the application. This ensures that the design version of the ActiveX control matches the runtime version. For example, if your ActiveX control was installed with Visual Basic 5.0, and you then upgrade to Visual Basic 6.0, you should re-reference the ActiveX control.
For additional information about how to distribute ActiveX controls, click the article numbers below
to view the articles in the Microsoft Knowledge Base:
279029 MOD2000: Supporting Files for ActiveX Controls in Microsoft Office 2000 Developer
197988 HOWTO: Deploy an ActiveX Control with the Package and Deployment Wizard (PDW)
247957 SAMPLE: Using DUPS.exe to Resolve DLL Compatibility Problems
For additional information about the Package and Deployment Wizard in Office 2000 Developer, see the following Microsoft Web site:
For additional information about how to distribute controls, see the following Microsoft Web site: