Word: まだ保存されていないドキュメントの場所フィールドを更新します

Word: まだ保存されていないドキュメントの場所フィールドを更新します

onSaveしたがって、VBA にはorイベントがないため、afterSaveドキュメントを保存し、かつ Document-Location を更新する方法 (保存後) を見つけるのに苦労します。

したがって、このドキュメントが使用される最も一般的な方法は次のとおりです。

  1. テンプレートから新しいドキュメントを作成する
  2. ドキュメントを編集する
  3. ドキュメントを(ネットワーク内のどこかの場所に)保存する

上司は、自分の文書が多すぎて困惑しており、見つけるのに苦労しています。
そこで、この文書がどこに保存されているかを確認したいと考えています。
フッターに文書の場所フィールドを追加し、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

activeDocument.Save ポイントまではすべて機能し、少なくとも 1 回は保存されている必要があります。beforeSave
イベントは適切に保存される前であるため、location-path がないため、これは明らかなことですが... これを正しく行うにはどうすればよいですか?

答え1

このフィールドは印刷プレビューによって更新されます。そこで私が使用するトリックは、AutoOpen マクロで印刷プレビューを作成することです。

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

関連情報