Word: Dokumentspeicherortfeld aktualisieren, das noch nicht gespeichert wurde

Word: Dokumentspeicherortfeld aktualisieren, das noch nicht gespeichert wurde

Da VBA kein „ onSaveoder“ afterSave-Ereignis hat, habe ich Probleme, eine Möglichkeit zu finden, mein Dokument zu speichern UND den Dokumentspeicherort zu aktualisieren (nachdem es gespeichert wurde).

Dieses Dokument wird am häufigsten wie folgt verwendet:

  1. Neues Dokument aus Vorlage erstellen
  2. Dokument bearbeiten
  3. Dokument speichern unter (ein Ort im Netzwerk)

Mein Chef ist von all seinen Dokumenten verwirrt und hat Probleme, sie wiederzufinden.
Deshalb möchte er sehen, wo diese Dokumente gespeichert sind.
Ich habe das Dokumentspeicherortfeld in der Fußzeile hinzugefügt und diesen Code in das VBA-Projekt eingefügt.

Sub AutoOpen()
'
' AutoOpen Macro
'
'
   Dim aStory As Range
   Dim aField As Field

   For Each aStory In ActiveDocument.StoryRanges

      For Each aField In aStory.Fields
         aField.Update
      Next aField

   Next aStory

 ' set document as unchanged (prevents save dialog popping up when closing)
 ' further edits will set this back to false and restore
 ' the save dialog on close
 ActiveDocument.Saved = True
End Sub

Private Sub wdApp_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)

    ActiveWindow.ActivePane.View.Type = wdPrintView
    Application.ScreenUpdating = True
    Selection.WholeStory
    ActiveDocument.Fields.Update
    ActiveDocument.Save

End Sub

Alles funktioniert bis zum Punkt activeDocument.Save, und es muss vorher mindestens einmal gespeichert worden sein.
Was auch irgendwie offensichtlich ist, weil ich davon ausgehe, dass das beforeSave-Ereignis vor dem ordnungsgemäßen Speichern stattfindet und es daher keinen Speicherortpfad gibt ... Was kann ich tun, um das richtig zu machen?

Antwort1

Dieses Feld wird durch eine Druckvorschau aktualisiert. Der Trick, den ich verwende, besteht darin, eine Druckvorschau im AutoOpen-Makro zu erstellen.

Sub AutoOpen()
    Application.Run MacroName:="MathTypeCommands.UIWrappers.FilePrintPreview"
    ActiveDocument.ClosePrintPreview
End Sub

verwandte Informationen