ougarairin’s diary

技術的なことと読んだ本とV

word マクロ 変更履歴を反映 (複数ファイル)

やりたいこと

複数のドキュメントを読み込み, 変更履歴のすべての変更を反映させたい

方針

【前提条件】

対象となるファイルパスはあらかじめ取得済みとする

【方針】

  1. 対象となるファイルパスを読み込み
  2. ドキュメントを開く
  3. 変更履歴を反映
  4. ドキュメントを保存
  5. ドキュメントを閉じる
  6. 2-5 を対象のファイルだけ行う

実装

Sub AcceptAll()
    
    Dim str As String
    Dim arr As Variant
    Dim arrs As Variant
    Dim doc As Document

    str = ActiveDocument.StoryRanges(wdMainTextStory).Text
    arrs = Split(str, vbCr)
    
    For Each arr In arrs
        Set doc = Documents.Open(arr)
        doc.Revisions.AcceptAll
        doc.Save
        doc.Close
    Next
    
End Sub

実行方法

  1. 上記で実装したマクロを保存する
  2. 対象のファイルパスをマクロを保存したドキュメントに張り付ける
  3. 実装したマクロを実行する

注意点

オブジェクト型の変数は設定されていません (エラー 91) が出る
とはいえ目的は果たされていたので現状無視

参考