TortoiseGit + WinMerge で Excelファイル の差分比較を行う

## 背景
ExcelをはじめとするMS Officeファイルは，バイナリ形式であるため，git管理しても，通常は差分を見ることができない．
そこで，TortoiseGit + WinMerge を使うことにより，差分を見る方法を紹介する．

## 前提知識および環境
gitの環境構築および基礎知識はあるものとする．

## 環境構築
### 1. ソフトのインストール
以下の2つのソフトをインストールする
- TortoiseGit
gitの比較を行うメインのソフト（これだけでも差分は見ることができる）
[Download – TortoiseGit – Windows Shell Interface to Git](https://tortoisegit.org/download/)
- WinMerge
巨大なファイル（複数のシートに渡っているなど）の差分をわかりすく表示するためのソフト
[WinMerge 日本語版](https://winmergejp.bitbucket.io)

### 2. TortoiseGit の設定
下記サイトより引用させていただく．
[MS OfficeファイルもGitでバージョン管理しよう | ゆるいアウトプット](https://slmbrcat-tech.com/version-control-msofficefile-with-git/#index_id5)

> 1. TortoiseGitの設定を開く
> 対象フォルダの空白部分で、右クリック＞TortoiseGit＞設定から開く。
<img width=15%><img width=70% src="https://slmbrcat-tech.com/wp-content/uploads/2024/02/WinMerge%E3%81%A7%E5%B7%AE%E5%88%86%E7%A2%BA%E8%AA%8D-2024-02-14-173309.png">
> 2. 差分ビューアにWinMergeを設定する
>「差分ビューア」をクリックし、「外部」のラジオボタンを選択しし、使用するプログラムのパスにWinMergeのexeファイルのパスを入力し、「OK」で設定を保存する。
<img width=15%><img width=70% src="https://slmbrcat-tech.com/wp-content/uploads/2024/02/WinMerge%E3%81%A7%E5%B7%AE%E5%88%86%E7%A2%BA%E8%AA%8D2-2024-02-15-135748.png">
> 3. ファイル拡張子ごとに差分ビューアを設定する
> 2の作業で基本は差分確認にWinMergeが使われるようになっているが、デフォルトで拡張子ごとにOfficeの変更履歴機能が設定されており、この設定が優先されてしまう。そのため「高度な設定」からWinMergeで差分確認したい拡張子のファイルで設定されているプログラムのパスを削除する必要がある。
<img width=15%><img width=70% src="https://slmbrcat-tech.com/wp-content/uploads/2024/02/WinMerge%E3%81%A7%E5%B7%AE%E5%88%86%E7%A2%BA%E8%AA%8D3-2024-02-15-141019.png">
<img width=A%><img width=B% src="https://slmbrcat-tech.com/wp-content/uploads/2024/02/WinMerge%E3%81%A7%E5%B7%AE%E5%88%86%E7%A2%BA%E8%AA%8D6-1536x529.png">
    
以上，引用させていただいた．

### 3. WinMerge の設定
WinMerge を起動し，2項目を設定する．
画像は下記サイトから引用させていただいた．
[WinMergeでエクセルのファイルを比較するための設定方法 - アウトプットしながら学ぶ](https://beiyan-tool.info/?p=818)
1. ツールバーの`プラグイン`をクリックし，`手動展開`を`自動展開`に変更．
<img width=15%><img width=70% src="https://beiyan-tool.info/wp-content/uploads/2020/11/winmerge-excel1.jpg">
2. 再びツールバーの`プラグイン`をクリックし，`プラグインの設定`を開く．
    1. `CompareMSExcelFiles.sct`をダブルクリックし，設定を開く．
    <img width=15%><img width=70% src="https://beiyan-tool.info/wp-content/uploads/2020/11/winmerge-excel2.jpg">
    1. `ワークブックの情報を複数ファイルに展開する`にチェックを入れる．
        これにより，シートが複数に分かれているワークブックの差分がわかりやすくなる．
        他のサイトでは，`ワークシートを画像化して比較する`も入れると紹介されているが，動作が遅くなるので私は入れていない．
    <img width=15%><img width=70% src="https://beiyan-tool.info/wp-content/uploads/2020/11/winmerge-excel3-768x579.jpg">

## 使い方

1. gitかんりしている対象フォルダの空白部分で、右クリック > `TortoiseGit` > `Diff with previous version` をクリック．
    <img width=15%><img width=70% src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/648110/97f0600a-51a6-471f-a037-264ee92f849c.png">
1. 差分を見たいファイルをクリック．
    <img width=15%><img width=70% src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/648110/7f7b9904-6b76-4c58-ab8b-767c09aff6c6.png">
1. 複数のシートがある場合は，変更のあるシートが強調表示される．差分を見たいシートをクリック．
<img width=0%><img width=100% src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/648110/43198e78-069e-4463-8c98-ce9f7f13b53e.png">
1. 左に1つ前のバージョン，右に今のバージョンが表示される．
<img width=15%><img width=70% src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/648110/8b8f8f14-77e0-4013-be1b-b68f3edbf822.png">

## 参考資料
- [MS OfficeファイルもGitでバージョン管理しよう | ゆるいアウトプット](https://slmbrcat-tech.com/version-control-msofficefile-with-git/#index_id5)
- [TortoiseGitでMS Officeファイルのバージョン管理を行う ffice - Qiita](https://qiita.com/hyt126/items/920b93400fc750cff8da)
- [WinMergeでエクセルのファイルを比較するための設定方法 - アウトプットしながら学ぶ](https://beiyan-tool.info/?p=818)