Merge & Fold in Word 2000

S

SuzD

I'm trying to convince Word 2000 to fold newsletters (landscape) after
merging with and printing address info. It WON'T do it! I believe the
problem is that Word shows my document as having 1 Page, no matter how
many sections it has (about 700 documents). So the printer won't fold
it, thinking they're all just sections. I've tried continuous break,
page break (adds blank pg). What am I missing? Could it be the data
file that needs changing? I'm working from theory that main merge
document is the problem. Any help greatly appreciated!
 
P

Peter Jamieson

What to do depends on what your printer needs.

If you choose a Letter type merge and merge to a new document, you get one
section for each record in the data source. Each section has the same page
numbering, which is why you have Page 1 repeated over and over.

If your printer needs that entire new document but with page breaks instead
of section breaks, change the type of Merge to be "Directory" ("Catalog" in
Word 2000 and earlier) and put your own page break at the end of the mail
merge main document.

However, it could be that what your printer needs is one /print job/ for
each record in the merge data source, and it won't get that using mailmerge
unless you do a separate merge for each record in the data source, which you
can do using a macro, e.g. to send to the printer try

Sub OneMergePerSourceRec()
'

' 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

.DataSource.FirstRecord = intSourceRecord
.DataSource.LastRecord = intSourceRecord
.Destination = wdSendToPrinter
.Execute
intSourceRecord = intSourceRecord + 1
End If
Loop
End With
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top