概要
こんばんは。ふとプロジェクトでExcelVBAをチームで作成することになってしまったのですが、ExcelVBA(マクロ)ってzipファイルなのでどうやってソースコード管理するんだ?と思い管理方法を色々調べてみました。
ふむふむ。IDEでソースのエクスポート、インポートね。めんどくさ、、
そんなめんどくさがり屋さんの私のためにどうやらVBACというツールがあるようです。今回はvbacを使用してgitでソース管理する方法をまとめていきます。
vbacとは
VBACはVBAプログラムをテキストファイル形式でインポート・エクスポートできるツールです。Ariawase というVBAライブラリに同梱されています。作者はいげ太さんという方でメイドインジャパンのツールのようですね。
vbacの使い方
それでは、vbacの使い方を説明していきます。
インストール方法
ダウンロードする
以下のGitHubページからモジュールをダウンロードしてきます。
https://github.com/vbaidiot/Ariawase
ダウンロードが完了したら解答すると以下のようなフォルダ構成になっております。【vbac.wsf】が今回使うファイルになりますので、とりあえずそのファイルがいればOKです。

vbacを配置する
さて、目的のブツが手に入ったら実際に使用するためにフォルダを構成していきましょう。作業フォルダは以下に【bin】フォルダを作成し、その中に管理したいマクロファイルを置きます。また、【bin】フォルダと同階層に【vbac.wsf】ファイルを配置しましょう。
フォルダ構成が以下の通りなれば、インストール作業完了です。
- bin
- TestMacro.xlsm
- vbac.wsf
vbacの使用方法
マクロのセキュリティ設定
vbacを使用するために、マクロのセキュリティ設定を行います。
「開発」⇒「マクロのセキュリティ」を選択し、設定ウィンドウを表示します。

「VBAプロジェクトオブジェクトモデルへのアクセスを信頼する」にチェックをつけてOKボタンを押してください。以上でマクロのセキュリティ設定は完了です。

テストマクロ作成
それでは簡単なマクロを作成しましょう。今回はMsgBoxを出すだけのマクロを作成してみました。

vbacを実行する
vbacを実行してみましょう。まず、コマンドプロンプトを起動し、作業フォルダまで移動します。vbacはwsf(Windows Script File)で記述されておりますので、cscriptコマンドで実行していきます。以下のコマンドを実行してみましょう。
cscript vbac.wsf decombine

コマンド実行するとsrcフォルダにマクロのソースファイルが吐き出されます。以下のようなフォルダ階層となります。【Sheet1.dcm】に先ほど記述したコードが出力されます。
- bin
- TestMacro.xlsm
- src
- TestMacro.xlsm
- Sheet1.dcm
- TestMacro.xlsm
- vbac.wsf
Gitで管理する
実際に使えそうかGit管理ツールで確認していきましょうか。
まず、生のマクロファイル【TestMacro.xlsm】だとバイナリファイルなので以下のようにソース管理できませんね。

次に生成されたdcmファイル【Sheet1.dcm】だと以下のようにしっかりソースの中身が見えます。これはいけそうですね!!

それじゃ実際にコミットして、ソースを直してみましょう。
MsgBoxの中身を「Hello World」から「こんにちは世界」に変えて保存。

それでvbac実行してsourcetreeを見ると、おお!!

変更箇所だけ変わってる!!わーい完成!!これでソース管理できますね!皆さんもぜひ試してみてください。あまりチームでマクロ開発なんて無いと思いますが、、、、
よく使うvbacコマンドまとめ
アウトプットコマンド
src配下にソースをアウトプットします。
cscript vbac.wsf decombine
インプットコマンド
src配下のソースをインプットします。
cscript vbac.wsf combine