A Microsoft Office (Excel, Word) forum. OfficeFrustration

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » OfficeFrustration forum » Microsoft Word » Mailmerge
Site Map Home Register Authors List Search Today's Posts Mark Forums Read  

Word mailmerge - Visual Basic experts please help!



 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #10  
Old August 22nd, 2008, 01:05 PM posted to microsoft.public.word.mailmerge.fields
Peter Jamieson
external usenet poster
 
Posts: 4,550
Default Word mailmerge - Visual Basic experts please help!

My apologies- the syntax for the Open has to change to the "function" style
where the parameter list is surrounded by braces, e.g.

Set objMMMD = objApp.Documents.Open(FileName:=strDocName)


--
Peter Jamieson
http://tips.pjmsn.me.uk

"Murray Muspratt-Rouse" wrote
in message ...[color=blue][i]

I am very grateful to Peter for his advice - this morning I realised
that I should have googled objMMMD. When I did that I found some of his
postings on the web and started looking for Microsoft Office 12.0 Object
Library, Trying to reference it showed it to be missing, so I tried to
find its name and location. What I saw was cut off at c:\Program
Files\Microsoft Office\Office 12\M - and I could not make the pop up
any wider!

I have tried Dim objMMMD As Object - the result was a compile error
with a syntax error on Set objMMMD = objApp.Documents.Open
FileName:=strDocName etc. I must locate the Object Library and
regioster it, I think.

Murray

Peter Jamieson;359803 Wrote:
That is probably because the Word Object library has not been referenced
via
the Tools|References option in Access VBA. However, the original author
may
have avoided that deliberately because when you reference a library,
the
reference is to a specific version of Word.

You can typically work around that using the following instead (you
just
don't see the autocomplete Help in the VBA editor that you would
otherwise
get)

Dim objMMMD As Object

--
Peter Jamieson
http://tips.pjmsn.me.uk

"Murray Muspratt-Rouse"
wrote
in message ...-

Thank you Doug for referring me to Peter Jamieson's advice. I have
immediately run in to a problem - it does not like 'objMMMD As
Word.Document' telling me 'User-defined type not defined' and
suggesting that it might be in a properly registered object or type
library. Did I misunderstand Peter's advice? Was I meant to change
objMMMD to something else?

Murray

Doug Robbins - Word MVP;359552 Wrote:-
Actually, I did know what the code was doing, but did not understand
why.

However, I suggest that you follow the advice given by Peter Jamieson
and
use

Dim objMMMD As Word.Document
'
'
'
Set objMMMD = objApp.Documents.Open FileName:=strDocName, 'etc.
'
'
'
' then when you want to close the mail merge main document, instead
of
having to
' work out which window it is in, you can do

objMMMD.Close SaveChanges:=False
'
' then

Set objMMMD = Nothing


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP

"Murray Muspratt-Rouse"

wrote
in message
...

I agree with Doug about the code he does not understand - since I am
not
the original author of this code and do not speak VBA any way I have
been struggling to find my way to add new function to the
application.

The merge document is selected by the user from an Access table in
which the full path to the file is stored, so what the code that we
cannot understand does is to strip off the path to the document from
strDocName: -
Dim intSplitName As Integer
Dim intLength As Integer
intLength = Len(strDocName)
intSplitName = InStrRev(strDocName, "\", , vbTextCompare)
strDocName = Right(strDocName, intLength - intSplitName)


objApp.Windows(strDocName).Activate
objApp.ActiveWindow.Close SaveChanges:=wdDoNotSaveChanges
So perhaps what the last line does is to shut the new document, since
the original merge document is displayed. I have tried commenting out
this code but that only results in an error. I will try changing
ActiveWindow in the last line to strDocName!

Many thanks for your time and trouble

Murray
-


+-------------------------------------------------------------------+
+-------------------------------------------------------------------+



--
Murray Muspratt-Rouse -



+-------------------------------------------------------------------+
+-------------------------------------------------------------------+



--
Murray Muspratt-Rouse


 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump


All times are GMT +1. The time now is 11:10 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 OfficeFrustration.
The comments are property of their posters.