一般的にテキストファイルの差分は diff などで確認できますが、MS Word には標準で差分を表示する機能があります。 フォントサイズなども比較できるこの機能を紹介します。


MS Wordの文章比較

みなさん、MS Word 使っていますか? 最近は Markdown なんかで資料を書くことも多いと思いますが、対外的に出す正式な仕様書などはやはり MS Word で、というところも多いかなと思います。仕様書となればもちろんGitやSVNなどでバージョン管理していることでしょう。 このときに困るのは、MS Wordの各リビジョン間の差異の確認です。 ソースコードなら diff コマンドなんかをつかえば差分なんか即わかるのですが、 残念ながら MS Word には diff はつかえません。 かといって目Grep(目視)で変更点を探すのはIT技術者として敗北感にさいなまされます。 なによりめんどくさいし見落とす可能性大です。そこで今回は、意外に知られていない MSWordの標準機能である「文書の比較」をする機能について説明します。 標準機能ですので外部ツールも必要ありませんし、作成者などのメタ情報およびフォントサイズなどもチェックできる優れものです。

MS Word でのファイル比較(差分表示)の方法

今回は MS Word 2013 を例に説明します。 他のバージョンでも表示がすこしちがうだけで基本は同じです。 また、元のファイルを「テンプレート.docx」、修正後のファイルを「テンプレートv2.docx」としておきます。 変更箇所は下図の赤線の場所です。

Word文書の変更箇所を赤線で表示した比較結果

では差分を表示する方法をみていきます。 まず、元のファイル「テンプレート.docx」を開きます。そして下図のように「ファイル」→「校閲」→「比較」→「比較」という順番でクリックします。

校閲タブから比較メニューを開く手順

すると、下記のように「文書の比較」というウィンドウが表示されます。 左側に元のファイル、右側に修正後のファイルを指定してください。

比較ダイアログで元ファイルと変更後ファイルを指定

下記のようなウィンドウが表示されると思います。左は具体的な変更内容です。 真ん中は比較結果です。右の上段は元の文章、右の下段は変更後の文章です。 このように一目で変更箇所がわかるように表示されます。便利ですね!

Word文書の比較結果表示画面

FYI: TortoiseSVN での MS Word 差分表示

ソースコードなどのテキストは WinMerge で差分表示することが多いかなと思います。 ですがバイナリファイルは、WinMergeでは基本的に差異があるかどうかしか表示しません。 そこで以前は、MS Wordの差分を確認するために WinMerge とそのプラグインのxdocdiff を組み合わせる必要がありました。 MS Wordのファイルをテキストコードに変換してから、それらを WinMergeで比較するという感じです。 ですがその方法だとメタ情報やフォント情報などが失われるため、できれば上記で説明したMS Word の比較機能を使いたいところです。 しかし現在はとくに何もしなくても、 TortoseSVN が勝手に MS Wordの比較機能を使って差分を表示してくれます。 下記のようなスクリプトを使っていい感じに上記のMS Word の比較機能を呼び出してくれます。

TortoiseSVNでWord比較機能を使用する設定スクリプト

ちなみにTortoiseSVN で MS Wordのリビジョン比較をした場合、下記のようになります。 ちゃんと比較機能がつかわれていますね!

TortoiseSVN経由でのWordリビジョン比較結果

まとめ

今回は意外に知られていない、MS Wordのファイル比較(差分表示)の機能をご紹介しました。 目Grepで修正箇所を頑張って探さなくても、この機能を使えばさくっと差異を表示できます。

もしWordを使いこなしたいなら下記の本が詳しいです。