0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Word で履歴を export するメモ

Last updated at Posted at 2019-12-24

背景

  • Word で契約書の文章の差分管理をしなければならない(相手方法務が git など使えず, Word 履歴機能しか使えない) :cry:
  • 何回も変更された Word で, どこが変わったのか日付順でソートして確認したいが, Word の標準機能ではなぜか日付でソートというのができない

対処方法

Word マクロ(VBA)で履歴情報を csv にエクスポートして, csv で日付順にソートしてチェックする.

方法

https://stabucky.com/wp/archives/2339
https://docs.microsoft.com/en-us/office/vba/api/word.revision

VBA は初めてでしたが, VBA を 10 分くらい習って以下のようなものができました.
VBA で比較的簡単に履歴オブジェクトにアクセスできますね.

Sub rev()
'
' rev Macro
'
'

myFile = Options.DefaultFilePath(wdDocumentsPath) & "\revs.csv"

Open myFile For Output As #1

For Each myRev In ActiveDocument.Revisions
  Write #1, myRev.Date, myRev.Author, myRev.Type, myRev.Range.Start, myRev.Range.Text
Next myRev

Close #1

MsgBox "Wrote revisons to " & myFile

End Sub

Revison.Range.Text に変更文章があります.

変更点があまり多くなければ, とりあえずあとは目視作業で Word 中の文章とマッチングできるでしょうか.

TODO

  • Revison.Range.Start がどのページ(+行)に対応するかを計算する
  • 変更履歴の Start(Range)と, 文章のマッチングを求める

さらなる高みへ

docx 自体が xml なので, docx にして xml を直接パースするほうがはやいかも

Word docxファイルの中身を探検する - Office Open XML ざっくり入門
https://qiita.com/sky_y/items/2ab80adfb7a998e47239

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?