VBA

マクロ開発をGitで管理する"vbac"ツールの使用方法

概要

こんばんは。ふとプロジェクトで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
  • 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

-VBA