ByteScope

Word Compare

Office がなくても docx 差分が取れます。2つの `.docx` をドロップすると、追加と削除を段落ごと・単語ごとに赤線で表示。ファイルはブラウザから出ません。

ファイルはブラウザから送信されません — 処理はすべてローカルで行われます。

元の版(A)

元の .docx をここにドロップ

クリックして選ぶこともできます。ファイルはこのタブの中で読むだけで、アップロードはしません。

修正版(B)

修正版の .docx をここにドロップ

クリックして選ぶこともできます。ファイルはこのタブの中で読むだけで、アップロードはしません。

変更履歴

両方のファイルに適用されます。「すべて承諾」は変更履歴をすべて承諾したあとの文面、「すべて元に戻す」は変更前の文面です。

制限

  • 比べるのは文字だけです。書式、画像、グラフ、フィールドの計算結果、箇条書きの番号(Word が自動で振るもので、本文には含まれません)は比べません。
  • 「すべて承諾」「すべて元に戻す」は、ファイルの XML からこのツールが推定したものです。入れ子になった変更履歴(変更の中の変更)は Word と結果が違うことがあります。
  • 段落記号の削除では段落をつなげません。変更履歴で 2 つの段落が 1 つにまとめられていても、どちらの表示でも 2 段落のままです。
  • 変更が続くかたまりの中では、削除された段落と追加された段落の単語が半分以上一致したときだけ、1 つの「変更」として組にします。それ以外は「削除」「追加」のままです。組み合わせの数(削除 × 追加)が 2,500 を超えるかたまりは順番に組にするため、挿入した段落が「変更」と表示されることがあります。
  • 単語の編集が 5,000 個を超える変更段落は、単語単位ではなく段落全体の置き換えとして表示します。上の組み合わせではこうした段落は似ていないと判定されるので「削除」と「追加」に分かれ、順番どおりに組にするかたまりでは、段落全体を置き換えた 1 つの「変更」になります。
  • 順番:本文(表はその位置に、セルごとに 1 段落)→ ヘッダーとフッター → 脚注 → 文末脚注 → テキストボックス。
  • コメントは比較しません。隠し文字はほかの文字と同じように比較します。
  • 出力はレポートです。変更履歴付きの .docx は作りません。HTML レポートもまだありません。

このツールについて

4往復した契約書、編集者から戻ってきた原稿、改訂版なのに変更点の説明がない規程——しかも誰も変更履歴をオンにしていなかった。そんなとき .docx を2つドロップすれば、ページの中で開いて比較します。削除は取り消し線、追加は下線で示す赤線表示(色に頼らなくても読めるよう記号も併記)、追加・削除・変更された段落数と文字数の差を集計したサマリー、そして Markdown か JSON での書き出し。段落は文書の順序どおりに比べます。本文(表はその位置のまま、各セルを1段落として「何番目の表の何行何列目」を付記)、次にヘッダーとフッター、脚注と文末脚注、最後にテキストボックスです。

どちらの文書もブラウザから出ません。契約書を手元で比較する意味は、契約書が手元に留まることにあります。2つのファイルはディスクから読み込み、あなたのマシン上の Web Worker で展開して差分を取ります。アップロード先はそもそも存在せず、ページが送るのは「比較を実行した・成功したか・どちらの変更履歴ビューだったか」だけ。ファイル名も本文の1行も含まれません。

まず段落、次に単語

差分は2段階で取ります。まず両文書の段落の並びに Myers 差分をかけ、追加・削除・変更された段落を見つけます。これで、挿入より後ろの段落がすべて「違う」と報告されることはありません。次に、変更された段落の中だけをもう一度、単語単位で比べます。ラテン文字の文章は空白と句読点で区切りますが、日本語や中国語には空白がないため1文字ずつ比較し、両者が混ざった段落は区間ごとに分けてそれぞれの方法で扱います。空白、全角/半角、大文字/小文字は初期状態ではすべて厳密に比較し、それぞれ個別に「無視する」オプションがあります。

変更履歴:承諾後か、元に戻した後か

どちらかの文書に未処理の変更履歴が残っていると、比較にはその文書の「どの版」を使うかの選択が必要です。初期状態では、両方のファイルを「すべての変更を承諾した状態」——挿入を含め、削除を除いた本文——で比較します。スイッチ1つで両方とも「すべて元に戻した状態」、つまり変更前の本文に切り替えられます。どちらかのファイルに変更履歴があれば結果の先頭にその旨と、左右それぞれの該当段落数を表示します。承諾後・元に戻した後の本文は文書の XML から算出したものです。変更履歴の中にさらに変更履歴が入れ子になっている場合は最も内側を優先するため、Word の解釈と異なることがあります。書式だけの変更履歴は本文の変更として数えません。

比較しないもの

比べるのは本文のテキストだけです。太字、フォント、段落スタイル、画像、グラフ、コメントは対象外。箇条書きの自動番号も対象外で、これは番号が Word によって表示時に計算されるもので、テキストとして保存されていないからです。変更履歴で段落記号が削除されていても、ここでは2つの段落を結合しないため、Word と段落の境界がずれることがあります。そして出力はあくまで報告——画面上の赤線表示と、持ち帰り用の Markdown か JSON——であり、変更履歴を書き込んだ .docx を生成することはありません。

よくある質問

文書はアップロードされますか?

いいえ。2つの .docx はディスクから読み込み、ページ内の Web Worker で展開・抽出・比較します。サーバーが中身を見ることはなく、タブを閉じれば何も残りません。匿名の利用イベントに記録されるのは「比較を実行した・成功したか・承諾後と元に戻した後のどちらのビューか」だけです。

Word や Office が入っていなくても2つの Word 文書を比較できますか?

はい、そのためのページです。.docx パッケージを直接読むので、インストールは何も要らず、Mac でも Linux でも Chromebook でも同じように動きます。ファイルは .docx に限ります。旧形式の .doc と暗号化された文書には対応していません。

相手から届いたファイルに変更履歴が残っています。どの版が比較されますか?

初期状態では、両方のファイルで「すべての変更を承諾した」版——挿入を残し、削除を取り除いた本文——です。スイッチ1つで、両方とも「すべて元に戻した」版、つまり変更前の本文で比較できます。どちらかのファイルに変更履歴が残っていれば結果の先頭にその旨と該当段落数を表示するので、比較結果がこの選択に左右されることが分かります。

差分を変更履歴として埋め込んだ Word ファイルは作れますか?

いいえ。結果は報告であり、画面上の赤線表示と Markdown・JSON の書き出しです。変更履歴付きの新しい .docx を書き出すことは意図的に範囲外にしています。比較したファイルが書き換えられることはなく、ダウンロードしたものが元の文書と取り違えられることもありません。

日本語や中国語の文章はどう比較されますか?

1文字ずつです。ラテン文字の単語単位の差分は空白と句読点で区切りますが、日本語や中国語には空白がないので1文字を単位にします。そのため、文中の1文字だけが変わった場合は、文全体ではなくその1文字だけが差分として表示されます。ラテン文字と漢字かなが混ざった段落は区間ごとに分け、それぞれの方法で扱います。

番号が振り直された箇条書きが差分に出ないのはなぜ?

番号が文書のテキストに入っていないからです。Word はリストの定義からページを描画するときに番号を計算し、.docx には段落とリストへの参照だけが保存されます。比較が見るのは各項目のテキストなので、項目を追加すれば段落の追加として表示されますが、それ以降の番号の振り直しは一切表示されません。

表、ヘッダー、脚注は結果のどこに出ますか?

決まった順序です。本文(表は元の位置のまま、各セルを1段落として「どの表の何行何列目か」を付記)、次にヘッダーとフッター、次に脚注と文末脚注、最後にテキストボックス。コメントは含みません。順序は両方のファイルで同じなので、左右がずれることはありません。

空白や全角文字が変わっただけでも差分になります。無視できますか?

できます。空白、全角/半角、大文字/小文字にはそれぞれ「無視する」オプションがあり、初期状態ではすべてオフです。最初の1回はファイルの中身をそのまま見せるためで、あなたの文書にとってノイズになるものだけオンにして、もう一度比較してください。