Word: atualizar campo de localização do documento, que ainda não foi salvo

Word: atualizar campo de localização do documento, que ainda não foi salvo

Portanto, como o VBA não possui um evento onSaveor afterSave, tenho problemas para encontrar uma maneira de salvar meu documento E atualizar o local do documento (depois de salvo).

Portanto, a maneira mais comum de usar este documento é:

  1. criar novo documento a partir do modelo
  2. editar documento
  3. salvar documento como (algum local na rede)

Meu chefe está confuso com todos os seus documentos e está tendo problemas para encontrá-los novamente.
Então ele quer ver onde esses documentos estão salvos.
Adicionei o campo de localização do documento no rodapé e adicionei este código no projeto VBA.

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

Tudo funciona até o ponto activeDocument.Save, e deve ser salvo antes pelo menos uma vez.
O que é meio óbvio também, porque presumo que o evento beforeSave seja antes de ser salvo corretamente e, portanto, não há caminho de localização ... O que posso fazer para acertar?

Responder1

Este campo será atualizado por uma visualização da impressão. Portanto, o truque que uso é criar uma visualização de impressão na macro AutoOpen.

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

informação relacionada