Serienbriefe als einzelne MS Word-Dokumente (Update)

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.