あるSEのつぶやき・改

IT・システム開発に関することをつぶやいています。

Excel VBAのgit diffを簡単に取れるgit-xltrailがすばらしい


Excel といえばバージョン履歴管理ができない困ったちゃんとして有名ですが、gitでバージョン管理したいものですよね。

そこで、git-xltrail の出番です。

git-xltrail はオープンソースでフリーウェアである git の拡張なのですが、なんと Excel VBA の git diff を取れるすぐれものです。

使い方ですが、Git for Windows がインストールされている Windows 環境に 、git-xltrail をインストールして初期化するだけです。あとは 'git diff' を実行すれば差分を取得できます。

初期化の方法ですが、すべてのリポジトリで git-xltrail を有効にするには以下のコマンドを実行します。

> git xltrail install

特定のリポジトリで git-xltrail を有効にするには以下のコマンドを実行します。こちらの方が安心ですね。

> git xltrail install --local

そして、以下のような動作をする Excel ファイルがすでにリポジトリにコミットされているとします。

f:id:fnyablog:20190525162712p:plain:w480

VBA のモジュールは以下のようになります。

Sub ShowMessage()
    MsgBox "Morning!!"
End Sub

これを以下のように書き換えます。

Sub ShowMessage()
    MsgBox "Hello!!"
End Sub

ここで、'git diff' を実行すると以下のように差分が表示されます。

f:id:fnyablog:20190525163313p:plain:w640

うーん。すばらしい!

しかも、ちゃんとコミットログでの diff もとれます。

> git diff 335baf30 f55792a08d

f:id:fnyablog:20190525164335p:plain:w640

惜しむらくは日本語に対応していないので文字化けしてしまうところでしょうか(diffはできる)。

f:id:fnyablog:20190525164709p:plain:w640

それでも diff ツールとして割り切って使うなら、なかなかよいツールです。

ちなみに、この git-xltrail は git mergeにも対応していたりします。

試してみたところ罠があるようでしたが、きちんと下調べをすればマージも使えます。

完全なオープンソースではないので(dllが含まれてる)日本語対応は難しいかもしれませんが、日本語対応するのを期待したいところです。

是非とも活用したいツールですね。