Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hello
As the Late Binding seems very slow, I would like to create a reference on Word 2000 or Word 2003 (Several PCs are running Office 2000, some others are running Office 2003. How can i create a Reference for Microsoft Word 9.0 or for Microsoft Word 11.0 (2000 and 2003)? How to remove this Reference after the VBA procedure has done its work? Thanks |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 ThisWorkbook.VBProject.References.AddFromGuid _ GUID:="{00020905-0000-0000-C000-000000000046}", _ Major:=0, Minor:=0 On Error GoTo 0 End Sub You can remove the reference after, but not really neccessary. RBS "Newbie" wrote in message ... Hello As the Late Binding seems very slow, I would like to create a reference on Word 2000 or Word 2003 (Several PCs are running Office 2000, some others are running Office 2003. How can i create a Reference for Microsoft Word 9.0 or for Microsoft Word 11.0 (2000 and 2003)? How to remove this Reference after the VBA procedure has done its work? Thanks |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks a lot RB Smissaert !
1° - Does this procedure work if Word 2000 is installed as well with Word 2003 installed? 2° - I need to remove the reference because another VBA procedure (which doesn't uses Word) hangs if the reference is still there! Thanks again ! Newbie "RB Smissaert" a écrit dans le message de ... 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 ThisWorkbook.VBProject.References.AddFromGuid _ GUID:="{00020905-0000-0000-C000-000000000046}", _ Major:=0, Minor:=0 On Error GoTo 0 End Sub You can remove the reference after, but not really neccessary. RBS "Newbie" wrote in message ... Hello As the Late Binding seems very slow, I would like to create a reference on Word 2000 or Word 2003 (Several PCs are running Office 2000, some others are running Office 2003. How can i create a Reference for Microsoft Word 9.0 or for Microsoft Word 11.0 (2000 and 2003)? How to remove this Reference after the VBA procedure has done its work? Thanks |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Yes, should work with all versions of Word as it does Major:=0, Minor:=0.
To remove do this: Sub RemoveWordReference() RemoveReference "Word" End Sub Sub RemoveReference(strReference As String) On Error GoTo ERROROUT Dim R As Object For Each R In ThisWorkbook.VBProject.References If R.Name = strReference Then ThisWorkbook.VBProject.References.Remove R Exit Sub End If Next ERROROUT: On Error GoTo 0 End Sub As it does Dim R As Object, rather than R as Reference you don't need a reference to Microsoft Visual Basic for Applications Extensibility. RBS "Newbie" wrote in message ... Thanks a lot RB Smissaert ! 1° - Does this procedure work if Word 2000 is installed as well with Word 2003 installed? 2° - I need to remove the reference because another VBA procedure (which doesn't uses Word) hangs if the reference is still there! Thanks again ! Newbie "RB Smissaert" a écrit dans le message de ... 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 ThisWorkbook.VBProject.References.AddFromGuid _ GUID:="{00020905-0000-0000-C000-000000000046}", _ Major:=0, Minor:=0 On Error GoTo 0 End Sub You can remove the reference after, but not really neccessary. RBS "Newbie" wrote in message ... Hello As the Late Binding seems very slow, I would like to create a reference on Word 2000 or Word 2003 (Several PCs are running Office 2000, some others are running Office 2003. How can i create a Reference for Microsoft Word 9.0 or for Microsoft Word 11.0 (2000 and 2003)? How to remove this Reference after the VBA procedure has done its work? Thanks |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks a lot RBS !
Very useful! PS : Where can I found all the GUID such as "{00020905-0000-0000-C000-000000000046} ??? Thanks again "RB Smissaert" a écrit dans le message de ... Yes, should work with all versions of Word as it does Major:=0, Minor:=0. To remove do this: Sub RemoveWordReference() RemoveReference "Word" End Sub Sub RemoveReference(strReference As String) On Error GoTo ERROROUT Dim R As Object For Each R In ThisWorkbook.VBProject.References If R.Name = strReference Then ThisWorkbook.VBProject.References.Remove R Exit Sub End If Next ERROROUT: On Error GoTo 0 End Sub As it does Dim R As Object, rather than R as Reference you don't need a reference to Microsoft Visual Basic for Applications Extensibility. RBS "Newbie" wrote in message ... Thanks a lot RB Smissaert ! 1° - Does this procedure work if Word 2000 is installed as well with Word 2003 installed? 2° - I need to remove the reference because another VBA procedure (which doesn't uses Word) hangs if the reference is still there! Thanks again ! Newbie "RB Smissaert" a écrit dans le message de ... 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 ThisWorkbook.VBProject.References.AddFromGuid _ GUID:="{00020905-0000-0000-C000-000000000046}", _ Major:=0, Minor:=0 On Error GoTo 0 End Sub You can remove the reference after, but not really neccessary. RBS "Newbie" wrote in message ... Hello As the Late Binding seems very slow, I would like to create a reference on Word 2000 or Word 2003 (Several PCs are running Office 2000, some others are running Office 2003. How can i create a Reference for Microsoft Word 9.0 or for Microsoft Word 11.0 (2000 and 2003)? How to remove this Reference after the VBA procedure has done its work? Thanks |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Look in the registry although I suspect Bart set a reference and then
queried the reference with VBA. from the immediate window as an example: ? thisworkbook.vbProject.references(2).Guid {00020813-0000-0000-C000-000000000046} ? thisworkbook.VBProject.References(2).Name Excel ? thisworkbook.vbProject.references(7).Guid {00020905-0000-0000-C000-000000000046} ? thisworkbook.VBProject.References(7).Name Word -- Regards, Tom Ogilvy "Newbie" wrote in message ... Thanks a lot RBS ! Very useful! PS : Where can I found all the GUID such as "{00020905-0000-0000-C000-000000000046} ??? Thanks again "RB Smissaert" a écrit dans le message de ... Yes, should work with all versions of Word as it does Major:=0, Minor:=0. To remove do this: Sub RemoveWordReference() RemoveReference "Word" End Sub Sub RemoveReference(strReference As String) On Error GoTo ERROROUT Dim R As Object For Each R In ThisWorkbook.VBProject.References If R.Name = strReference Then ThisWorkbook.VBProject.References.Remove R Exit Sub End If Next ERROROUT: On Error GoTo 0 End Sub As it does Dim R As Object, rather than R as Reference you don't need a reference to Microsoft Visual Basic for Applications Extensibility. RBS "Newbie" wrote in message ... Thanks a lot RB Smissaert ! 1° - Does this procedure work if Word 2000 is installed as well with Word 2003 installed? 2° - I need to remove the reference because another VBA procedure (which doesn't uses Word) hangs if the reference is still there! Thanks again ! Newbie "RB Smissaert" a écrit dans le message de ... 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 ThisWorkbook.VBProject.References.AddFromGuid _ GUID:="{00020905-0000-0000-C000-000000000046}", _ Major:=0, Minor:=0 On Error GoTo 0 End Sub You can remove the reference after, but not really neccessary. RBS "Newbie" wrote in message ... Hello As the Late Binding seems very slow, I would like to create a reference on Word 2000 or Word 2003 (Several PCs are running Office 2000, some others are running Office 2003. How can i create a Reference for Microsoft Word 9.0 or for Microsoft Word 11.0 (2000 and 2003)? How to remove this Reference after the VBA procedure has done its work? Thanks |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
The way to get those GUID's is like this:
First set the reference manually in the VBE under Tools, References. Then run code like this: Sub GetLibraryGUID() Dim c As Byte Dim myCheck As Long Dim P As Boolean Dim rng As Range Dim i As Byte c = ActiveWorkbook.VBProject.References.Count On Error Resume Next Dim Message, Title, Default, T As Single Message = "NUMBER ?" & Chr(13) & "________" Title = " GET REFERENCES GUID ( 1 TO " & c & " )" Default = c T = InputBox(Message, Title, Default, 3500, 3500) If Not T Mod 1 = 0 Then Exit Sub End If If T < 1 Or T c Then Exit Sub End If MsgBox "REFERENCE ( " & T & " ) NAME : " & _ ActiveWorkbook.VBProject.References(T).Name & vbCrLf & vbCrLf & _ "MAJOR : " & _ ActiveWorkbook.VBProject.References.Item(T).Major & _ vbCrLf & vbCrLf & "MINOR : " & _ ActiveWorkbook.VBProject.References.Item(T).Minor & _ vbCrLf & vbCrLf & _ "GUID ( " & T & " ) : " & _ ActiveWorkbook.VBProject.References.Item(T).GUID, , _ " REFERENCES GUID : ITEM " & T myCheck = MsgBox(" PUT INFORMATION IN SHEET ?", _ vbYesNo, " GetLibraryGUID") If myCheck = vbNo Then Exit Sub End If If ActiveSheet.ProtectContents = True Then P = True ActiveSheet.Unprotect Else P = False End If Range(Cells(ActiveCell.Row, ActiveCell.Column), _ Cells(ActiveCell.Row + 3, ActiveCell.Column + 1)).Select For Each rng In Selection.Cells If Not IsEmpty(rng) Then i = i + 1 End If Next If i 0 Then myCheck = MsgBox(" OVERWRITE DATA IN THIS RANGE ?", _ vbYesNo, " GetLibraryGUID") If myCheck = vbNo Then Exit Sub End If End If On Error Resume Next ActiveCell.Value = "NAME :" ActiveCell.Offset(1, 0).Value = "MAJOR :" ActiveCell.Offset(2, 0).Value = "MINOR :" ActiveCell.Offset(3, 0).Value = "GUID :" ActiveCell.Offset(0, 1).Value = _ ActiveWorkbook.VBProject.References(T).Name ActiveCell.Offset(1, 1).Value = _ ActiveWorkbook.VBProject.References.Item(T).Major ActiveCell.Offset(2, 1).Value = _ ActiveWorkbook.VBProject.References.Item(T).Minor ActiveCell.Offset(3, 1).Value = _ ActiveWorkbook.VBProject.References.Item(T).GUID If P = True Then ActiveSheet.Protect End If End Sub That will give you all the information you need. Keep in mind that you can do Major:=0, Minor:=0 to avoid a problem where you specified a higher version than the one on the user's machine. RBS "Newbie" wrote in message ... Thanks a lot RBS ! Very useful! PS : Where can I found all the GUID such as "{00020905-0000-0000-C000-000000000046} ??? Thanks again "RB Smissaert" a écrit dans le message de ... Yes, should work with all versions of Word as it does Major:=0, Minor:=0. To remove do this: Sub RemoveWordReference() RemoveReference "Word" End Sub Sub RemoveReference(strReference As String) On Error GoTo ERROROUT Dim R As Object For Each R In ThisWorkbook.VBProject.References If R.Name = strReference Then ThisWorkbook.VBProject.References.Remove R Exit Sub End If Next ERROROUT: On Error GoTo 0 End Sub As it does Dim R As Object, rather than R as Reference you don't need a reference to Microsoft Visual Basic for Applications Extensibility. RBS "Newbie" wrote in message ... Thanks a lot RB Smissaert ! 1° - Does this procedure work if Word 2000 is installed as well with Word 2003 installed? 2° - I need to remove the reference because another VBA procedure (which doesn't uses Word) hangs if the reference is still there! Thanks again ! Newbie "RB Smissaert" a écrit dans le message de ... 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 ThisWorkbook.VBProject.References.AddFromGuid _ GUID:="{00020905-0000-0000-C000-000000000046}", _ Major:=0, Minor:=0 On Error GoTo 0 End Sub You can remove the reference after, but not really neccessary. RBS "Newbie" wrote in message ... Hello As the Late Binding seems very slow, I would like to create a reference on Word 2000 or Word 2003 (Several PCs are running Office 2000, some others are running Office 2003. How can i create a Reference for Microsoft Word 9.0 or for Microsoft Word 11.0 (2000 and 2003)? How to remove this Reference after the VBA procedure has done its work? Thanks |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Dynamic Cell References in Excel | Excel Discussion (Misc queries) | |||
Excel VBA, dynamic references | Excel Discussion (Misc queries) | |||
dynamic cell references | Excel Worksheet Functions | |||
dynamic cell references in formulas | Excel Programming | |||
Dynamic Cell References | Excel Programming |