I suspect there is more to your code than what you show. If you reference
an object in Word and it is not fully qualified, then you can create a
non-releasable reference to word. Thus, when you code ends, even though you
might have issued all the commands to close word, it may still remain in
memory. The code you show appears to be designed to execute multiple times
in a session, so you could be filling memory with copies of word and causing
the intermittent problems you describe.
So the code you show does appear to use late binding - thus you don't need a
reference to the word object library (use the value of any word constants
rather than using defined constant name.)
Make sure you issue the proper commands to close word
Fully qualify all object refernces to objects in word and release them at
the end.
--
Regards,
Tom Ogilvy
"Ed" wrote in message
...
Bob and Tom:
Thank you for your responses. But I thought I *was* using late binding.
Sometimes, though, it will error on the Open command - Object required.
Other times it will lock up and not proceed; when I close through Task
Manager, I have a "ghost" doc created. My code is below - if you can help
me understand what I'm missing, I will be most grateful.
Ed
Dim WD As Object
Dim doc As String
Dim Fname As String
Dim Fpath As String
' Get file path
Fpath = ThisWorkbook.Path
' Check if ActiveCell is in Col C
Sheets("Sheet1").Activate
If ActiveCell.Column = 3 Then
' Get TIR number from list page
Fname = ActiveCell.Text
' Open TIR
doc = Fpath & "\" & Fname & ".doc"
Set WD = CreateObject("Word.Application")
WD.Documents.Open doc
WD.Visible = True
Else
MsgBox "Please select a TIR number in Column C using a single mouse
click."
"Tom Ogilvy" wrote in message
...
tools=Macros=Security, select trust access to Visual Basic Project
http://support.microsoft.com/default...b;EN-US;282830
PRB: Programmatic Access to Office XP VBA Project Is Denied
However, your whole idea sounds flawed. The library doesn't actually
contain the code that will be executed I don't believe, so you would be
using a roadmap of Europe to find you way around the US as an analogy.
The usual solution to this problem is to use late binding for the
release
version of the application.
http://support.microsoft.com/default...b;EN-US;244167
INFO: Writing Automation Clients for Multiple Office Versions
http://support.microsoft.com/default...b;en-us;245115
INFO: Using Early Binding and Late Binding in Automation
http://support.microsoft.com/default...b;en-us;247579
INFO: Use DISPID Binding to Automate Office Applications Whenever
Possible
--
Regards,
Tom Ogilvy
"Ed" wrote in message
...
I have an Excel project which calls Word (hence posting to both NG).
It's
created on a system running Windows/Office XP. I've been having
difficulty
running code which calls Word on Windows/Office 2000 machines. I
discovered
the reference to the Word library was for Word10 - XP - which does not
exist
on a 2000 machine. I got the bright idea of copying the Word9
reference
from a 2000 machine onto my XP machine, and then setting the reference
in
the code which creates this workbook. With the following code, I have
two
problems:
Sub Change_Refs()
' Set reference to Word9 vs. Word10
refWord9 = "C:\Program Files\Microsoft Office\Office10\MSWORD9.olb"
refWord10 = "C:\Program Files\Microsoft Office\Office10\MSWORD.olb"
ThisWorkbook.VBProject.References.Remove refWord10
ThisWorkbook.VBProject.References.AddFromFile refWord9
End Sub
Problem 1: The Remove line generates an error - "Object required"
Problem 2: I commented out the Remove line just to see what the code
would
do on the Add line. Another error - I'm not trusted to
programmatically
change the VB project.
Any suggestions?
Ed