win32comでWordの変更履歴の承諾


Python3のwin32com.clientを使ってword文章を自動化を扱っているので、メモ。今回は、変更履歴関係を扱う。

環境:
・ windows 10
・ Python 3.8.1 64bit

# 変更履歴の記録を有効化
doc.TrackRevisions = True

# 変更履歴/コメントなし に設定 (文字列置換で、変更前の文字列に変換が複数回かからないようする対応)
doc.ShowRevisions = False

# すべての変更を承諾
doc.Revisions.AcceptAll()
# 特定のTableのみ変更をリジェクト(元に戻す)
# 例として、一番最初のTable(Tables[0])内にすべての変更をリジェクト
for revision in doc.Tables[0].Range.Revisions:
    revision.Reject()
# 修正箇所が"XXX", "YYY" であれば、変更をリジェクト(元に戻す)
for revision in doc.Revisions:
    if revision.Range.Text in [ "XXX" ,"YYY"]:
        revision.Reject()