69
61

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VBAのソースを、Gitとかで管理する

Last updated at Posted at 2019-02-06

問題点

業務でVBAを使うことがたまにありますが、Excelとか、Accessとかバイナリの中に組み込まれていて、Diffをとったりマージしたりが大変です。手作業でExportしてGitに入れてとかやったりもできますが、非常に面倒です。

ツール

そんな問題を解決するツールを見つけました。Excel、Word、Accessに対応していて、非常に便利だったので紹介しておきます。

いげ太さんが作成されたものですが、かなり秀逸です。

ダウンロード

Gitで公開されていますので、こちらからダウンロードしてください。
ダウンロードしたファイルの中に、vbca.wsfというファイルがありますので、今回はこれを使います。

事前準備

Excelはセキュリティの設定を少し変更する必要があります。
セキュリティセンタから「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」をチェックしておいてください。
image

使い方

作業はコマンドプロンプト上でやるんですが、vbac.wsf をおいて、同じフォルダにbinフォルダを作成。
そこに、対象となるVBA入りのExcelファイル等を置きます。

分割

>cscript vbac.wsf decombine
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.

begin decombine

> Target: sample.xlsm
- Export: Sheet1.dcm
- Export: Module1.bas
- Export: Class1.cls
- Export: UserForm1.frm
- Export: UserForm1.frx

end

srcというディレクトリが作成され、そこにモジュールが出力されました。
無事フォームも出力されています。
シートの内容等は出力されないため、シート本体も保存は必要です。

統合

>cscript vbac.wsf combine
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.

begin combine

> Target: sample.xlsm
- Import: Class1.cls
- Import: Module1.bas
- Import: Sheet1.dcm
- Import: UserForm1.frm
- Import: UserForm1.frx

end

おわりに

現在の現場ではEUCツールという大量のバージョン管理されていないExcel、Accessが存在します。
いつかGitにのせて並行開発もできるようにしてあげようと思います。

69
61
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
69
61

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?