大規模なシステムではExcelVBAを用いてシステムを構築することはないと思いますが、サブシステムや作業効率UPのツールとしてExcelVBAでアプリケーションを作成することがあるかと思います。
このExcelVBAでアプリを作成すると問題になるのが「ソース管理」です。
最近のトレンドでは「Git」かなと思いますが、私自身はまだ「SubVersion」を使用しています。
Gitに移行しようかな、と思ってはいるのですが、なかなか使い慣れたものから移行するのは思い切りが必要ですね。
話がそれましたが、ExcelVBAでソース管理をする場合にExcelファイルをソース管理に登録すると、Excelファイル自身がバイナリファイルなため履歴の比較がとてもしにくくなります。
とても管理しづらい!となったことはないでしょうか?
VBAをエクスポートして管理すれば上記の問題は解決するわけですが、毎回ソース修正→エクスポート→ソース管理に登録としているととても面倒です。
そんな面倒で毎回行うような手順を簡略するVBAの紹介です。
■ExcelVBAでソースコードを出力する
Dim wb As Workbook Set wb = Workbooks.Open(Filename:="対象のブックのパス", _ ReadOnly:=True, _ UpdateLinks:=False) dim outputpath as String outputpath = "保存フォルダのパス" Dim vbComp As VBIDE.VBComponent For Each vbComp In wb.VBProject.VBComponents vbComp.Export outputpath & "\" & vbcComp.Name & ".bas" Next vbComp wb.Close
ここで注意点は、Excelの設定で「VBIDE.VBComponent」に対するアクセスを許可する必要があります。
なお、この設定はVBAからでは設定できないので、Excelの「セキュリティセンター」の「マクロの設定」から設定する必要があります。
VBAから上記の設定をできてしまうと何でもできてしまうためですね。
上記を設定しないと実行時にエラーになるのでご注意ください。
上記処理でソース管理しているフォルダに出力して、そのままコミットすればだいぶ作業が楽になるかと思います。
なるべく楽に!確実なソース管理を心がけましょう!