WinMerge は、テキストファイルやフォルダの比較で広く使われている無料のオープンソースツールです。実は Excel ファイルも比較「は」できます——ただし、その仕組みを知らずに使うと「思っていたのと違う」となりがちです。この記事では、WinMerge での Excel 比較の仕組み・手順・向き不向きを整理します。
仕組み:セルの中身を「テキスト」に変換して比較する
WinMerge は Excel ブックをそのまま解釈するのではなく、同梱プラグイン CompareMSExcelFiles がセルのテキスト内容を抽出し、それをテキストファイルとして比較します。公式マニュアルには次の2点が明記されています。
- 抽出されるのはテキスト内容のみで、書式や埋め込みオブジェクトはすべて取り除かれる
- プラグインの動作には Microsoft Excel のインストールが必要
対応形式は .xls / .xlsx / .xlsm / .xlsb など幅広く、.xlsb を扱えるのは無料ツールとしては貴重な点です。
手順
- WinMerge 公式サイトからインストール(無料)
- WinMerge を起動し、比較したい2つの Excel ファイルを選択(ウィンドウへのドラッグ&ドロップでも可)して比較を実行
- シートの内容がテキスト化され、行単位の差分表示(左右並び・変更行のハイライト)で確認できます
Excel ファイルがテキスト化されずそのまま開かれてしまう場合は、「プラグイン」メニューで自動アンパック(プラグインの自動適用)が有効になっているかを確認してください。
得意なこと
- 無料で、Excel 以外のテキスト・フォルダ比較にもそのまま使える万能さ
- テキストの行差分として比較するため、行の追加・削除があってもずれに追従できます(テキスト diff アルゴリズムの得意分野)
- 開発者にはおなじみの操作感。普段からコードやテキストの比較に WinMerge を使っている人が、Excel の中身も「ついでに」確認する用途には十分実用的です
限界
- 見た目が Excel ではなくなる。差分はテキスト行として表示されるため、「どのセルか」という位置の感覚が失われます。列が多い表では1行が長大になり、目で追うのが大変です
- 書式・図形などは比較されない。テキスト抽出の時点で取り除かれるため、値以外の違いは原理的に検出できません
- 列の挿入・削除に弱い。行内の文字列がまとめてずれるため、実際には1列違うだけでも行全体が差分として表示されがちです
- 結果を配れない。差分は WinMerge の画面上で確認するもので、「差分に色を付けた Excel ブック」を成果物として出力する機能はありません
- 比較のたびに Excel のインストールされた環境が必要です
使い分け:Excel の見た目のまま差分を見たいなら
「セル単位で、Excel の画面のまま差分を確認したい」「差分に色を付けたブックを報告資料としてそのまま渡したい」という用途には、Excel 専用の比較ツールが向いています。
筆者が開発している無償ツール「方眼Diff」は、差分セルを着色したブック(変更=黄・片方にしかない行や列=赤・移動=水色)とレポートを出力します。行や列の挿入・削除に加えて列の移動や挿入にもセル単位で追従し、フォルダ同士の一括比較もできます。WinMerge と同じく無料・インストール不要です(ただし .xlsb と書式の比較は非対応です。書式差の検出は Microsoft Spreadsheet Compare を検討してください)。
なお、TortoiseGit などのバージョン管理ツールの diff ビューアに Excel 比較を割り当てたい場合は、方眼Diff の CLI を外部 diff ツールとして設定する方法もあります。
関連記事
- 2つのExcelファイルを比較して差分を見つける方法【無料の4つのやり方】 — 比較方法の全体像
- Microsoft Spreadsheet Compare の使い方——入手条件と限界 — 書式差まで検出できる純正ツール