ROBOT PAYMENT TECH-BLOG

株式会社ROBOT PAYMENTのテックブログです

WinMergeでExcelの差分を比較しよう

どうも!ペイメントシステム課エンジニアの川上です。 今回は趣向を変えて、バックオフィスの方にも役立つツールをご紹介したいと思います!!

エクセルファイルどれが最新か分からない問題

突然ですが、このようなファイルを見たことがないでしょうか?

弊社ではクラウドストレージでファイルの世代管理しているのでこのようなことは起こらないのですが、「あるある!!」と思った方もいることでしょう。 「結局どれが一番新しいのさ?」「古いの消したいけど何が違うの?」となったらファイルを比較して違いを見つけなければなりません。 でも人の目では限界があります。

  • シートがたくさんあったら?
  • 数式に違いがあったら?
  • マクロに変更があったら?

複雑になればなるほど、見落とす可能性も上がってしまいます。 そんなあなたに便利なツール、ありますよ!!

WinMergeでオフィスファイルの中身を比較できる

WinMerge(ウィンマージ)というツールをご存じでしょうか? テキストファイルの比較などを行うためのオープンソースソフトウェアです。 有名なツールなのでご存じの方も多いでしょう。 実はこのWinMerge、少し設定を変えるだけでMicrosoft Officeの各種ファイルを比較できるようになるのです!!

試しにこんなファイルを用意してみました。 パッと見は同じに見えますが、A6セルの数式が異なっています。 また右ファイルのB2セルでは「l」(小文字のエル)を「I」(大文字のアイ)に変えてあります。

プラグインの設定を変更する

WinMergeをインストールしただけの状態ではOfficeファイルの中身を比較することができません。 最初に「プラグイン - 自動展開」を選択しておきましょう。

それではファイルを比較してみます。 2つのエクセルファイルを選択して、右クリックしてWinMergeを選択します。 するとWinMergeが起動して比較結果が表示されます。

おっ!早速「l」(小文字のエル)と「I」(大文字のアイ)の違いを見つけてくれましたね。 WinMergeの画面も、なんだかエクセルっぽく表示されています。 Sheet1が3行目から始まっているので実際の行番号を知りたいときはマイナス3する必要がありますが、それでも目視で違いを探すことを考えれば十分役に立つのではないでしょうか。

でもこの結果では数式の差分が検出されていません。 プラグインの設定を変えてみましょう。

数式を比較できるようにする

ツールバーの「プラグイン - プラグインの設定」で設定ダイアログを開きます。 赤枠で囲った部分がMicrosoft Officeファイルを比較するためのプラグインです。 Excelの他にもPowerPoint、Visio、Wordに対応していますね。 今回はExcel用の「CompareMSExcelFiles」を選択して、ダイアログの下のほうにある「プラグインの設定」ボタンを押します。

はい、こんなダイアログが出てきました。 「数式を比較する」これですね。 チェックをONにしてダイアログをOKで閉じたらWinMergeを一度終了して、エクスプローラーから再びWinMergeしてみましょう。 やりました!!数式の差分がバッチリ見えています!! ちなみにWinMergeの11行目に「Sheet1.Formulas」と表示されています。 Formulasは「数式」という意味なので、Sheet1の数式がこのセクションに表示されるみたいです。

ところでよく見ると14行目に「Cannot get Macros.」と見えます。 そう、マクロを比較するにはさらに設定変更が必要なのです。

マクロを比較できるようにする

VBAマクロを比較できるようにするにはExcelの設定を変更する必要があります。

まずExcelのオプション画面を開きます。 次に「トラストセンター」を開きます。 「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」をオンにします。

ダイアログをOKで閉じてください。 これで準備完了です。

比較用に用意したファイルはこちら。

ではWinMergeしてみましょう。 はい、もうバッチリですね!! VBAマクロの差分まで表示してくれちゃいました!!

ぼくのかんがえたさいきょうの設定

プラグインの設定ダイアログには他にも色々設定することができます。 私は結果の見やすさと処理速度のバランスを考えて、以下のような設定で使用することが多いです。

最後に

お勤めの会社によってはソフトウェアのインストールに許可が必要な場合があります。 WinMergeをダウンロードする前に、まずは然るべき部署に確認を取ってください。 またマクロを比較するための「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」はセキュリティに関する設定です。 こちらも同様に、然るべき部署に確認を取ってから実施してください。 あくまでもご自身の責任でお願い致します。

うまく使いこなせば強力な武器になります。 なにかの役に立つことを願っております!! ではまた!!



We are hiring!!

ROBOT PAYMENTでは一緒に働く仲間を募集しています!!!

speakerdeck.com
www.robotpayment.co.jp
🎉twitter採用担当アカウント開設!🎉どんどん情報発信していきます!!