読者です 読者をやめる 読者になる 読者になる

VBAのソースファイルをバージョン管理するのを支援するvba-porter.xlaを作りました

VBA

これは何?

私が以前勤めていた職場は、とにかくExcelerな所でした。
業務で使うファイルの8割方はExcelです。
重要なデータもことごとく人の手によって肥大したExcelの中に保存されていく・・・。
そんなカオスな状況(※1)にうんざりした私は、気がつくとVBAをコーディングし始めていました。

それまでVBAはマクロの記録ぐらいしかしたことがなかったんですが、 調べてみると、オブジェクト指向の開発もでき、それなりに使えそうで希望が出てきたのですが、 以下の問題がありました。

  • モジュールを分けてオブジェクト指向開発しても、各モジュールをSVNなどでバージョン管理できない
  • 開発したVBAを他のメンバーに提供する良い方法がなかった(※2)
  • 開発したVBAのトリガを用意するのがめんどい(※3)

そこで、上記の問題を解決するために、vba-porter.xlaというExcelのアドインを作りました。

特徴

コンポーネントをインポート/エクスポートするメニューを提供

以下のメニューで開発したコンポーネントをインポート/エクスポートできます。

f:id:aki2o:20140109064210p:plain

これにより、開発したコンポーネントをExcelと切り離したテキストファイルとして保存できるため、 SVNなどでバージョン管理でき、各メンバが本アドインをインストールするだけで、作成/修正したVBAを簡単に提供できます。

コンポーネントのコードを実行するメニューを自動生成

コンポーネントを決められたルールでコーディングすることで、 以下のようなメニューが自動生成され、コンポーネントの関数が実行できます。

f:id:aki2o:20140109065034p:plain

複数人での開発をサポート

SVN更新などでエクスポート先のファイルが更新されている場合は、以下のようなダイアログで気付けるようにしています。

f:id:aki2o:20140109065632p:plain

インストールなど

以下を見て下さい。

https://github.com/aki2o/vba-porter/blob/master/README-ja.md

その他

  • 動作確認した環境は Windows XP SP3、Excel 2003 SP3 です。(※4)

※1 周りの人はそう思ってなかったみたいです・・・。
※2 その職場ではファイルサーバにVBAのExcelを置いとくだけでした。
※3 ボタンとかだと、そのExcelファイルに変更/依存したりして何だかなぁと。
※4 未だにXP/Excel2003です。他の環境で動作・・・するかなぁ・・・。

Enjoy!!!