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.