MS Word-Dateiformate werden automatisch mit externen Dokumenten aktualisiert

349
Patix80

In MS Word haben wir ein Vorlagendokument ( template1.docm ). Dieses Dokument wird in SharePoint von vielen Benutzern verwendet, um Tausende von Prozedurdokumenten zu schreiben, die als MHT-Dokumente gespeichert werden.

Wenn wir Stile in der Vorlage aktualisieren, möchten wir alle diese anderen Dokumente aktualisieren.

Ist es möglich, Stile nur in dieser einen Vorlagendatei zu aktualisieren und alle anderen Dateien automatisch zu aktualisieren?

Wenn nicht, was kann ich sonst tun, um diese Tausenden von Dokumenten mit den Änderungen an der Vorlagendatei zu aktualisieren?

0

1 Antwort auf die Frage

0
harrymc

Ich werde versuchen, eine Herangehensweise für das Problem mithilfe eines VBA-Makros zu skizzieren, und warne, dass es völlig theoretisch und nicht getestet ist.

Die Idee besteht darin, ein Arbeitsdokument zu erstellen, das ein VBA-Makro enthält, das die Vorlage erneut an alle Dokumente in einem Ordner anfügt, nachdem Sie nach dem Ordner gefragt haben.

Legen Sie die Datei, die dieses Makro enthält, nicht in den Ordner, den Sie bearbeiten möchten. Andernfalls wird die Datei selbst verarbeitet.

Hier ist das Makro:

Sub UpdateDocuments() Dim strFolder As String, strFile As String, strCurDoc As Document, strTemplate As String strFolder = GetFolder strTemplate = "C:\path to template\template.dot" If strFolder = "" Then Exit Sub Application.ScreenUpdating = False strFile = Dir(strFolder & "\*.docx", vbNormal) While strFile <> "" Set strCurDoc = Documents.Open(FileName:=strFolder & "\" & strFile, AddToRecentFiles:=False, Visible:=False) strCurDoc.AttachedTemplate = strTemplate strCurDoc.Close wdSaveChanges End With strFile = Dir() Wend Set wdDoc = Nothing Application.ScreenUpdating = True End Sub  Function GetFolder() As String Dim oFolder As Object GetFolder = "" Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Choose a folder", 0) If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path Set oFolder = Nothing End Function 
Nicht so gut wie ich dachte, aber ... Problem löst sich mit einer einzelnen Zeile: `ActiveDocument.CopyStylesFromTemplate (" C: \ Temp \ FullPathToTemplate.dotx ")`. Ich verwende eine Vorlage mit neuen Stilen und kopiere sie mit einem Makro in ein anderes Dokument. Patix80 vor 5 Jahren 0
Verwenden Sie eine ähnliche Lösung wie oben oder beabsichtigen Sie, ein neues Makro in Tausende von Dokumenten einzufügen? harrymc vor 5 Jahren 0
Tatsächlich ist eine Makrocode-Datei in vielen anderen enthalten. Daher ist es einfach, diesen Code nur in der Codedatei hinzuzufügen. Wir müssen jedoch das Menüband bearbeiten, um die neue Makro-Schaltfläche hinzuzufügen. Ich konnte Ihre Lösung vorerst nicht verwenden, aber ich behalte sie für den nächsten Schritt vor! Vielen Dank Patix80 vor 5 Jahren 0