K
Kobus
The following is code I've been using for an automated Mailmerge routine in
Word 2003 to allow mailmerge to work totally in the background and allowing
multiple copies of mail merge to execute in parallel (We use a cenralized
server to do mailmerges and distribute the results, all automated without any
human interaction). In Word 2007 this no longer works and pops up the merge
process on the screen, thus limiting execution to a single instance at a time.
Can anybody tell me what has changed in Word 2007 and how to solve the
problem?
Sub Main
'
Dim WrdApp As Object
On Error Resume Next
Set WrdApp= CreateObject("Word.Application")
WrdApp.Visible = False
With WrdApp
Documents.Open FileName:=DRIVER_TEMPLATE, ConfirmConversions:=False, _
ReadOnly:=True, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=True, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto,
XMLTransform:=""
WrdApp.Visible = vbFalse
ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
ActiveDocument.MailMerge.OpenDataSource Name:=FULL_NAME, _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:="", SQLStatement:="",
SQLStatement1 _
:="", SubType:=wdMergeSubTypeOther
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
ActiveDocument.SaveAs FileName:=SAVE_NAME, FileFormat:= _
wdFormatDocument, LockComments:=False, Password:="",
AddToRecentFiles:= _
False, WritePassword:="", ReadOnlyRecommended:=False,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
.Documents.Close(0)
.Application.Quit
End With
Set WrdApp = Nothing
End Sub
Word 2003 to allow mailmerge to work totally in the background and allowing
multiple copies of mail merge to execute in parallel (We use a cenralized
server to do mailmerges and distribute the results, all automated without any
human interaction). In Word 2007 this no longer works and pops up the merge
process on the screen, thus limiting execution to a single instance at a time.
Can anybody tell me what has changed in Word 2007 and how to solve the
problem?
Sub Main
'
Dim WrdApp As Object
On Error Resume Next
Set WrdApp= CreateObject("Word.Application")
WrdApp.Visible = False
With WrdApp
Documents.Open FileName:=DRIVER_TEMPLATE, ConfirmConversions:=False, _
ReadOnly:=True, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=True, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto,
XMLTransform:=""
WrdApp.Visible = vbFalse
ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
ActiveDocument.MailMerge.OpenDataSource Name:=FULL_NAME, _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:="", SQLStatement:="",
SQLStatement1 _
:="", SubType:=wdMergeSubTypeOther
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
ActiveDocument.SaveAs FileName:=SAVE_NAME, FileFormat:= _
wdFormatDocument, LockComments:=False, Password:="",
AddToRecentFiles:= _
False, WritePassword:="", ReadOnlyRecommended:=False,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
.Documents.Close(0)
.Application.Quit
End With
Set WrdApp = Nothing
End Sub