BUG: VBA6 Extensibility Library Breaks Code Written for VBA5 Extensibility Library (244224)
The information in this article applies to:
- Microsoft Visual Basic for Applications (VBA) Software Development Kit (SDK) 5.0
- Microsoft Visual Basic for Applications (VBA) Software Development Kit (SDK) 6.0
- Microsoft Visual Basic for Applications (VBA) Software Development Kit (SDK) 6.1
This article was previously published under Q244224 SYMPTOMS
On computers that have both the VBA5 Extensibility library (vbeext1.olb) and the VBA6 Extensibility library (vbe6ext.olb), cross-process automation of the VBA5 Extensibility Object Model fails. In C++ applications, this appears as a failure of a IUnknown::QueryInterface call. In Visual Basic applications, this appears as the following error message:
Run-time error 430 -- "Class does not support Automation or does not support expected interface."
This problem only affects applications writing to the VBA5 Extensibility Model, and not the VBA6 Extensibility Model.
CAUSE
This problem is caused by changes in the type information of the Extensibility Library between VBA5 and VBA6.
RESOLUTION
In order to work around this problem, applications should use late binding to make calls to the VBA5 Extensibility Model. For Visual Basic (VB/VBA) applications, this can be accomplished by changing the declaration for your VBProjects variable from:
Dim objVBProjs as VBIDE.VBProjects
to
Dim objVBProjs as Object
For C++ application, this can be accomplished by using the IDispatch interface to search for and Invoke methods.
STATUSMicrosoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.
Modification Type: | Major | Last Reviewed: | 10/28/1999 |
---|
Keywords: | kbbug KB244224 |
---|
|