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

0

Assim, uma vez VBA não tem um onSave ou afterSave evento eu tenho problemas para encontrar uma maneira de salvar meu documento e updateing o Documento-Location (depois de ter sido salvo).

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

  1. crie um 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 estão os documentos salvos.
Eu 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 ele deve ser salvo antes de pelo menos uma vez.
O que é meio obviuos também, porque eu assumo o evento beforeSave é antes de ele é salvo propertly e assim não existe um local-path ... O que posso fazer para acertar isso?

    
por Harrys Kavan 26.02.2013 / 11:03

1 resposta

1

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

Sub AutoOpen()
    Application.Run MacroName:="MathTypeCommands.UIWrappers.FilePrintPreview"
    ActiveDocument.ClosePrintPreview
End Sub
    
por 26.02.2013 / 14:04