Problem updating references

G

Guest

Hello,
I have a VB6/MS Office Excel/Word VBA app configured in Win XP Office 2003.
I am trying to make it compatible with earlier versions of Office-Office 97
on a Win 98 platform at present-and after researching have decided to try
late binding. According to MS documentation, the application should update
its references when opened in the earlier Office 97 version. It has done this
for 6 of 8 references: except for the MS Word reference-it is still looking
for Word 11.0 in the same location as was on the original, newer platform.
Then it is also looking for the MS VBA Extensibility 5.3 file in the location
of the original, newer platform as well.

Does anyone have an idea how I can get my app to point to the correct 2
references per above? Also should the Extensibility reference be to the newer
5.3 version (vbe6ext.olb) which per KB article 269116 is a replacement for
the earlier older type library (which I am guessing is vbeext1.olb as that is
what I find on my Office 97 platform);and if so 1) should I add that to my
installer application. 2) how do I get it to point to the correct location?
Will I need to use code to locate and set the reference to the file?
Thanks, blessings
Van
 
R

RB Smissaert

This bit of code works with old Word libraries.
Not sure about the VBA Extensibility 5.3.

Sub ActivateWordLibrary()

Dim r

On Error Resume Next

'no need to carry on if the Word Object Library is already there
'---------------------------------------------------------------
For Each r In ThisWorkbook.VBProject.References
If r.GUID = "{00020905-0000-0000-C000-000000000046}" Then
Exit Sub
End If
Next

'Will this work with any Word version from 97 upwards?
'-----------------------------------------------------
'hopefully it will by doing Major:=0, Minor:=0
'Word 2002 is Major:=8, Minor:=2
'Word 2003 is Major:=8, Minor:=3
'-----------------------------------------------------
ThisWorkbook.VBProject.References.AddFromGuid _
GUID:="{00020905-0000-0000-C000-000000000046}", _
Major:=0, Minor:=0

On Error GoTo 0

End Sub

Note that this for an Excel .xla add-in and that is why it is ThisWorkbook
and not ActiveWorkbook.


RBS
 
S

Stephen Bullen

Hi VanS,
I am trying to make it compatible with earlier versions of Office-Office 97
on a Win 98 platform at present-and after researching have decided to try
late binding.

To use late binding, you do the following:

1. Remove any references to the object models, in Project > References
2. Declare all object variables that refer to the object models As Object
3. Replace any constants defined in those object models with their numeric
equivalents.
4. Use CreateObject("Appname") instead of 'New Appname' to create new
instances of the objects.

If you do that, you shouldn't have any references problems, as you won't have
any references!

Regards

Stephen Bullen
Microsoft MVP - Excel
www.oaltd.co.uk
 
G

Guest

Thanks for your response, RB. God bless
Van

RB Smissaert said:
This bit of code works with old Word libraries.
Not sure about the VBA Extensibility 5.3.

Sub ActivateWordLibrary()

Dim r

On Error Resume Next

'no need to carry on if the Word Object Library is already there
'---------------------------------------------------------------
For Each r In ThisWorkbook.VBProject.References
If r.GUID = "{00020905-0000-0000-C000-000000000046}" Then
Exit Sub
End If
Next

'Will this work with any Word version from 97 upwards?
'-----------------------------------------------------
'hopefully it will by doing Major:=0, Minor:=0
'Word 2002 is Major:=8, Minor:=2
'Word 2003 is Major:=8, Minor:=3
'-----------------------------------------------------
ThisWorkbook.VBProject.References.AddFromGuid _
GUID:="{00020905-0000-0000-C000-000000000046}", _
Major:=0, Minor:=0

On Error GoTo 0

End Sub

Note that this for an Excel .xla add-in and that is why it is ThisWorkbook
and not ActiveWorkbook.


RBS
 
G

Guest

Stephen,
I tried to remove the Office references as you suggested which I was able to
do for those from Office specifically, except for the Excel 11.0 Library-it
gave an error message that the file was in use. My application runs in Excel.
So do you have any suggestions on how I can get around this to remove this
reference?
Thanks
Van
 
S

Stephen Bullen

Hi VanS,
I tried to remove the Office references as you suggested which I was able to
do for those from Office specifically, except for the Excel 11.0 Library-it
gave an error message that the file was in use. My application runs in Excel.
So do you have any suggestions on how I can get around this to remove this
reference?

Is this a VB project, or some VBA code in an Excel workbook. If the latter,
Excel will update its own references correctly. If the former, I've no idea why
you shouldn't be able to remove the reference, but you could try closing VB and
editing the .vbp file in Notepad to remove the Excel reference.

Regards

Stephen Bullen
Microsoft MVP - Excel
www.oaltd.co.uk
 
G

Guest

Stephen,
Thanks again for your reply. Yes, it is an Excel VBA project. One other
respondent suggested that I would only need to remove the Word references
which were the problem and shouldn't try to remove the Excel references. Do
you concur?
Thanks, God bless
Van
 
S

Stephen Bullen

Hi VanS,
Yes, it is an Excel VBA project. One other
respondent suggested that I would only need to remove the Word references
which were the problem and shouldn't try to remove the Excel references. Do
you concur?

Yes. From your original post - "I have a VB6/MS Office Excel/Word VBA app" - I
thought this was a VB6 app.

Regards

Stephen Bullen
Microsoft MVP - Excel
www.oaltd.co.uk
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top