Select the product you need help with
- Internet Explorer
- Windows Phone
- More products
BUG: VBA6 Extensibility Library Breaks Code Written for VBA5 Extensibility Library
Article ID: 244224 - View products that this article applies to.
This article was previously published under Q244224
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:
This problem only affects applications writing to the VBA5 Extensibility Model, and not the VBA6 Extensibility Model.
Run-time error 430 -- "Class does not support Automation or does not support expected interface."
This problem is caused by changes in the type information of the Extensibility Library between VBA5 and VBA6.
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:
For C++ application, this can be accomplished by using the IDispatch interface to search for and Invoke methods.
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.
Steps to Reproduce BehaviorTo see the problem, add the following code to a Visual Basic project on a computer that has both Office 97 (VBA5) and Office 2000 (VBA6) installed:
To correct the problem, change the code to the following:
Article ID: 244224 - Last Review: October 28, 1999 - Revision: 1.1