TortoiseGit で Microsoft Office 系のファイルの差分を確認するとどんなふうに表示されるの?

Microsoft Office で作成したファイルは
Windows PC 上であれば差分をある程度視覚的に確認することができます。

この記事では 2020/02/21 時点で、
TortoiseGit から Microsoft Office 系のファイルの差分を確認したとき
どのように表示されるかをスクリーンショットを交えて示します。

なお、提出・差し戻しなどが頻繁にあるような制作物は
Git のようなツールで厳密な編集履歴管理をしなければ生産性が低下します。
そのような制作物を、差分確認の難しい Microsoft Office で作り込むことは
基本的におすすめしません。

差分確認するためのアプリケーション

次のアプリケーションをインストールしておきます:

  • Microsoft Office 365
  • Git for Windows
  • TortoiseGit

TortoiseGit のコンテキストメニューなどから
[作業ベースと比較] [作業ツリーと比較] [リビジョンの比較]
などのメニューを選択すると Microsoft Office のアプリケーションが起動し、
差分が表示されます。

TortoiseGit から差分を確認するためのメニュー
TortoiseGit から差分を確認するためのメニュー

Word の場合の差分表示

Word の場合は次のように表示されます:

Word の差分表示 1
Word の差分表示 1
Word の差分表示 2
Word の差分表示 2

かなり曖昧な表示になっています。

中央の [比較結果文書] では、
追加・更新があった辺りが赤く表示されていますが、
削除された行に関しては表示されていません。
また、どの行がどこに移動したのかの情報も表示されません。

細かい編集情報は左側の [変更履歴] を読む必要があります。
数カ所の編集でこのようになってしまうので
長い文書ファイルの場合は変更履歴の追跡は困難になってしまうでしょう。

ちなみに、同じ内容を MarkDown で作成しました。

Word と同じ内容を MarkDown で作成した状態
Word と同じ内容を MarkDown で作成した状態

この差分の表示は次のようになります。

MarkDown の差分表示
MarkDown の差分表示

追加された行、削除された行、更新された行とその更新箇所が
かなり明確にわかります。

今後も利用・改変を続ける文書は
可能な限り Word から MarkDown に書き換えることをおすすめします。

Excel の場合の差分表示

まず、マクロに関しては差分を見ることができません。

Excel の差分表示 1
Excel の差分表示 1

ご覧のように、 [マクロの表示] で [編集] ボタンがグレーアウトしており、
マクロのコードを参照することができません。

この動作は、
[ファイル] → [オプション] → [トラスト センター] → [トラスト センターの設定] → [マクロの設定] → [マクロの設定] を
「すべてのマクロを有効にする」 に設定していても、変化しません。

次に、シート、セルについては、
同じ位置のシート、同じ絶対座標のセルが比較されます。
変化があったセルが赤く表示されます。
次の点に気をつける必要があります:

  • シートの挿入や削除は検知されず、同じ位置のシート同士が比較されます
  • セルの挿入や削除は検知されず、絶対座標の同じセル同士が比較されます
  • セルの式が異なっても、計算結果の値が同じだと赤く表示されません
  • セルの装飾に変化があっても検知されません
Excel の差分表示 2
Excel の差分表示 2

以上のことから、 Excel は厳密な変更履歴管理が必要な業務には
適していないことがわかります。

厳密な変更履歴管理が難しいということは、シートやセルを改変したとき、
データや式、マクロの正確性を検証するのに
多大な労力を必要とするということです。
Excel を使って始めた業務が定型化、本格化しそうな段階で
別のツールやアプリケーションに移行しなければ
Excel ファイルのメンテナンスに忙殺されることになります。

Excel のデータはデータベースにインポートして管理し、
マクロは Python などのプログラムに置き換えて Git 管理した方が効率的です。

PowerPoint の場合の差分表示

PowerPoint の場合は、片方のファイルの内容に対して、
もう片方のファイルの変更履歴を示すアイコンが表示されます。
変更履歴には 2 種類あり、
「プレゼンテーションの変更」と「スライドの変更」があります。
どちらも、クリックすると変更内容の詳細が表示され、
チェックを入れることで変更内容が画面に反映されます。

PowerPoint の差分表示
PowerPoint の差分表示

競合の解決のときはどうなるの?

Microsoft Office 系のファイルで競合が発生した場合、
競合の解決は、通常のテキストファイルが競合した場合に比べて
困難な作業となります。

マージなどの操作で競合が発生した場合に
[競合の解決] ボタンをクリックすると、次のような画面が表示されます。

競合の解決画面
競合の解決画面

ここで、競合が発生しているファイルをダブルクリックしたときの動作は
Microsoft Office 系のファイルの場合、
Word と Excel・PowerPoint で異なります。

Word の場合

Word の場合は、まず次のようなダイアログが表示されます。

Word ファイルを開いたときのダイアログ
Word ファイルを開いたときのダイアログ

After you click ‘OK’ we’ll create a merge document. Please wait. Then reject or accept changes and save the document renaming it to the original conflicting filename.

これは、大体次のような意味です。

「[OK] ボタンをクリックした後、マージした文書が作成されますので、お待ちください。(文書が表示されたら、) 変更を却下するか受け入れて、ファイル名を元の競合したファイル名と同じ名前に変更して文書を保存してください。」

そして、 [OK] ボタンをクリックすると、次のような画面が表示されます。

Word で競合の解決を行う画面
Word で競合の解決を行う画面

画面右側にそれぞれのブランチのファイルが表示され、
画面左側にそれぞれのブランチの編集内容が表示されるので、
画面中央の編集用画面で「どのようにマージするか」を編集していきます。

Excel・PowerPoint の場合

競合の解決画面で Excel, PowerPoint のファイルを開こうとすると
次のようなエラーが表示されます。

Excel, PowerPoint のファイルを開いたときのダイアログ
Excel, PowerPoint のファイルを開いたときの
ダイアログ

Excel と PowerPoint のファイルは TortoiseGit がサポートしていないため
上記のようなエラーダイアログが表示されます。
[OK] ボタンをクリックしてダイアログを閉じ、
エクスプローラーでファイルを確認すると、
新たに次のような名前のファイルが作成されています。

  • (ファイル名).BASE.(拡張子)
  • (ファイル名).LOCAL.(拡張子)
  • (ファイル名).REMOTE.(拡張子)

BASE はマージしているブランチ同士が分岐しているリビジョンの状態、
LOCAL は現在のブランチのリビジョンの状態、
REMOTE はマージしようとしているブランチのリビジョンの状態です。

これらのファイルの内、2 つをエクスプローラーで選択した状態で
[右クリック] → [TortoiseGit] → [差分] をクリックすると、
それらのファイルの差分を確認することはできます。

2 つのファイルを選択した状態で右クリック → [TortoiseGit] → [差分]
2 つのファイルを選択した状態で右クリック → [TortoiseGit] → [差分]

この操作により
各ブランチの更新内容や競合している箇所を確認することはできるので、
それを頼りにマージした状態のファイルを作成し、
元のファイル名で保存して競合を解決します。

タイトルとURLをコピーしました