Speichern personalisierter Kopien eines Dokuments (Microsoft Word)
Wenn Sie mit anderen Personen in Ihrem Unternehmen oder möglicherweise mit einer Gruppe von Kunden zusammenarbeiten, möchten Sie möglicherweise für jeden Kunden eine personalisierte Datei erstellen. Während es am besten ist, die Erstellung mithilfe eines Seriendrucks durchzuführen, gibt es einen einfacheren Weg, wenn Ihre Personalisierungsanforderungen gering sind.
Erstellen Sie zunächst eine reguläre Textdatei, die die Namen der Personen enthält, die Ihr Dokument erhalten sollen, einen Namen pro Zeile. Das Makro fügt dann den Namen in die Kopfzeile eines Dokuments ein und speichert das Dokument unter dem Namen dieser Person. Wenn Ihre Textdatei also fünfzehn Personen enthält, erhalten Sie fünfzehn Kopien des Dokuments, eine pro Person. Jedes wird mit dem Namen der Person in der Kopfzeile personalisiert.
Der Vorgang zum Ausführen einer solchen Aufgabe ist recht einfach: Öffnen Sie die Textdatei, greifen Sie auf einen Namen zu, fügen Sie ihn in die Kopfzeile ein und speichern Sie das Dokument. Ein anderer Name wird abgerufen und der Vorgang wiederholt, bis die Datei keine Namen mehr enthält. Das folgende Makro implementiert einen solchen Prozess:
Sub SaveNameFiles() Dim sName As String Dim sFile As String Open "c:/names.txt" For Input As #5 On Error Resume Next Do While Not EOF(5) ' get the name Line Input #5, sName sFile = sName & ".doc" sFile = "c:\mypath\" & sFile ActiveWindow.ActivePane.View.SeekView = _ wdSeekCurrentPageHeader Selection.WholeStory Selection.Delete Selection.TypeText Text:=sName ActiveWindow.ActivePane.View.SeekView = _ wdSeekMainDocument ActiveDocument.SaveAs FileName:=sFile Loop Close #5 ActiveWindow.ActivePane.View.SeekView = _ wdSeekCurrentPageHeader Selection.WholeStory Selection.Delete ActiveWindow.ActivePane.View.SeekView = _ wdSeekMainDocument End Sub
Der schwierige Teil des Makros besteht darin, mithilfe der .SeekView-Eigenschaft anzugeben, mit welcher Story im Dokument Sie arbeiten möchten. Wie hier implementiert, wird die .SeekView-Eigenschaft wiederholt verwendet, um zwischen dem Header-Bereich und dem Hauptdokument zu wechseln.
Beachten Sie auch, dass die Variable sFile den Namen der Datei angibt, in der das personalisierte Dokument gespeichert wird. Unmittelbar nachdem der Name aus der Textdatei abgerufen wurde, wird die Variable sFile erstellt, indem die Dateierweiterung .doc und der Pfad vor dem Dateinamen hinzugefügt werden. (Sie sollten den Pfad in einen für Ihr System geeigneten ändern.)
Der eigentliche Speichervorgang ist relativ einfach; Die .SaveAs-Methode wird mit einem Dateinamen verwendet. Dies ist die fehleranfälligste Codezeile im Makro, da einer der aus der Datei gelesenen Namen Zeichen enthalten kann, die für gültige Dateinamen ungeeignet sind. In diesem Fall wird ein Fehler generiert und das Makro fährt mit der nächsten Zeile fort. Das Dokument wird jedoch nicht unter dem betreffenden Namen gespeichert.
Nachdem die Schleife (Abrufen von Namen und Speichern) abgeschlossen ist, wird der Kopfbereich gelöscht und die .SeekView wird zurück zum Hauptdokument geschaltet.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (7983) gilt für Microsoft Word 2007, 2010, 2013, 2016, 2019 und Word in Office 365. Eine Version dieses Tipps finden Sie für ältere Menüoberfläche von Word hier: