Sie wollen die Einzeldokumente ihres #Word #Serienbriefs als #PDF speichern, und dabei #Dateinamen vergeben, die von Seriendruckfeldern abhängen? Das geht mit #VBA.
Im Vorfeld müssen Sie die Bereiche, in denen Ihr „Input“ steht, mit der gestern gezeigten Funktion zu Textmarken machen; ihnen also einen Namen verpassen.
Dann kann es losgehen:
Sub Export_Results()
'
Dim I As Long
ThisDocument.MailMerge.DataSource.ActiveRecord = ThisDocument.MailMerge.DataSource.FirstRecord
For I = 1 To ThisDocument.MailMerge.DataSource.RecordCount
ThisDocument.ExportAsFixedFormat OutputFileName:= _
"C:\Users\katha\CISV\" & ThisDocument.Bookmarks("Prog").Range & "\" _
& "Anmeldung " & ThisDocument.Bookmarks("PartName").Range & ".pdf" _
, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
ThisDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
Next I
End Sub
Die Erklärung:
Sie erzeugen mit Hilfe von I ein Dokument nach dem anderen, bis Sie alle vorhandenen (ThisDocument.MailMerge.DataSource.RecordCount) abgearbeitet haben. Dann exportieren Sie den aktuellen Datensatz (ThisDocument.ExportAsFixedFormat) als PDF (ExportFormat:=wdExportFormatPDF), und basteln dabei aus den Inhalten der Textmarken Prog und Partname (ThisDocument.Bookmarks(„PartName“).Range) den Dateinamen zusammen (OutputFileName:=). Dann kommt der nächste Datensatz dran (ThisDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord). Fertig.