tl;dr: Benutze pdfsam
MS Word hat eine gute Serienbrieffunktion, aber sie hat eine Einschränkung: es können keine einzelnen Dokumente gespeichert werden. Word erstellt lediglich eine Datei, die alle Dokumente enthält. Ich habe weit und breit nach einer Lösung gesucht und bin auf einige Add-ins gestoßen, aber letztendlich half ein einfaches Makro.
Ich fand diesen Tipp von Allen Wyatt.
Das ist der Makro-Code:
Sub BreakOnSection()
'Used to set criteria for moving through the document by section.
Application.Browser.Target = wdBrowseSection
'A mailmerge document ends with a section break next page.
'Subtracting one from the section count stop error message.
For i = 1 To ((ActiveDocument.Sections.Count) - 1)
'Select and copy the section text to the clipboard
ActiveDocument.Bookmarks("\Section").Range.Copy
'Create a new document to paste text from clipboard.
Documents.Add
Selection.Paste
'Removes the break that is copied at the end of the section, if any.
Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1
ChangeFileOpenDirectory "C:\"
DocNum = DocNum + 1
ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc"
ActiveDocument.Close
'Move the selection to the next section in the document
Application.Browser.Next
Next i
ActiveDocument.Close savechanges:=wdDoNotSaveChanges
End Sub
Der Dateispeicherort und Dateiname/-erweiterung lassen sich in Zeilen 20 und 22 anpassen.
Update
Das funktionierte mit echten Dokumenten nicht ganz wie erwartet. Kopf- und Fußzeilen wurden zum Beispiel nicht in die neu erzeugten Dateien übernommen.
Ich habe noch folgendes versucht, doch auch hier lief es nicht ganz rund mit der Formatierung.
Option Explicit
Sub AllSectionsToSubDoc()
Dim x As Long
Dim Sections As Long
Dim Doc As Document
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Doc = ActiveDocument
Sections = Doc.Sections.Count
For x = Sections - 1 To 1 Step -1
Doc.Sections(x).Range.Copy
Documents.Add
ActiveDocument.Range.Paste
ActiveDocument.SaveAs (Doc.Path & "\" & x & ".doc")
ActiveDocument.Close False
Next x
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Ich fand das bei vbaexpress.com.
Letztendlich habe ich pdfsam benutzt.