You need a VBA macro to do this - if the merge is simple and only processes
one data source record per output document, you could use VBA to perform one
merge for each record in the data source, and generate the path/file name
for each document from the merge data.
Or you could do the entire merge to an output document and use a macro to
split the file using e.g. Section breaks to determine where to make the
split.
An example of code for the former approach would be:
Sub ProduceOneDocPerSourceRec()
'
' NB, needs bettor error management and doubtless other things a VBA expert
' will point out.
Dim intSourceRecord
Dim objMerge As Word.MailMerge
Dim strOutputDocumentName As String
Dim TerminateMerge As Boolean
' Need to set up this object as the ActiveDocument changes when the
' merge is performed. Besides, it's clearer.
Set objMerge = ActiveDocument.MailMerge
With objMerge
' If no data source has been defined, do it here using OpenDataSource.
' But if it is already defined in the document, you should not need to
define it here.
' .OpenDataSource _
' Name:="whatever"
intSourceRecord = 1
TerminateMerge = False
Do Until TerminateMerge
.DataSource.ActiveRecord = intSourceRecord
' if we have gone past the end (and possibly, if there are no records)
' then the Activerecord will not be what we have just tried to set it to
If .DataSource.ActiveRecord <> intSourceRecord Then
TerminateMerge = True
' the record exists
Else
' while we are looking at the correct activerecord,
' create the document path name
' e.g. - you will need to change this -
strOutputDocumentName = "c:\a\mydoc\" &
..DataSource.Datafields("RecipientName").Value &
".doc"
.DataSource.FirstRecord = intSourceRecord
.DataSource.LastRecord = intSourceRecord
.Destination = wdSendToNewDocument
.Execute
' The Activedocument is always the output document
' Add any parameters you need to these calls
ActiveDocument.SaveAs strOutputDocumentName
ActiveDocument.Close
intSourceRecord = intSourceRecord + 1
End If
Loop
End With
End Sub
If you need the other approach to splitting the file, there is code at
Graham Mayor's site for a couple of examples which you could adapt in a
similar way:
http://www.gmayor.dsl.pipex.com/individual_merge_letters.htm
If you need more on how to use these macros, see
http://www.mvps.org/word/FAQs/MacrosVBA/CreateAMacro.htm
--
Peter Jamieson - Word MVP
jayne said:
I am doing a large mail merge and need to save each of the merged
documents separately. For instance, I am merging documents from one data
source for jones, smith and johnson - I want to save three separate
documents with only each individuals information for later use - is there
anyway to do this besides merging each employees record individually???