こちらの記事では vbac.wsf を使って VBA を管理する話をまとめました。ここでは、 Access 用のソースコード管理を可能にするアドイン msaccess-vcs-addin についてまとめてます。
なお、今回試した際の環境は下記の通りです。
- OS: Windows 11 Pro, 64 bit 24H2
- Access: Microsoft 365, version 2010 (build 13328.20408)
- msaccess-vsc-addin: 5.0.1
msaccess-vsc-addin
このアドインを見つけたきっかけは、こちらの記事で書いたように Codex で遊んでいた時に、改めて VBA の開発で Codex を使えないものかと思って、いろいろと調べたことでした。
その時、 Access には SaveAsText / LoadFromText というメソッドがあることに気がつきました。 これを使えば、 Access でもソースコード管理ができそうですよね。いい具合に、マイクロソフトの記事などもあったのでこれなどを参考に自分で作ろうかとも思ったのですが、さらに調べてみると既にオープンソースのアドインがあることがわかりました。
既に紹介しているブログもあったんですね。
Accessのバージョン管理どうしてる?運用の工夫 - なかぜんのPC &副業ラボ
これは使えそうです。ということで早速試してみます。
インストール
msaccess-vcs-addin の git リポジトリをみると Quick Start があるので、こちらの手順に従います。
- Releases のページから最新版の zip ファイルをダウンロードします
- 解凍します
- 解凍したフォルダにある Version Control.accda をダブルクリックして開きます(Access が立ち上がります)

- もし、オプションを変更したい場合は、こちらのページから設定できる内容をご確認ください
- Install Add-In ボタンを押します
- アドインのインストール先が『信頼できるフォルダ』に入っている必要があり、追加してよいか確認画面が表示されるので、OKを押します

- インストールに成功すると下記画面が表示されて、Accessが自動的に閉じられます

デフォルトでは %AppData%\Roaming\MSAccessVCS\ にアドインがインストールされます。
なお、アドイン追加後、Accessを起動して、『オプション』->『トラストセンター』->『信頼できる場所』を表示すると、

のように、先ほどインストールしたフォルダが追加されていることがわかります。
使い方
アドインを追加後、Accessを起動すると、メニューに
![]()
『Version Control』が追加されています。ここを開くと

こんな感じにアイコンがたくさん表示されます。
エクスポート
既存の Access ファイルを開いて、『Version Control』の『Export Source Files』を選択します。

デフォルトだと『ファイル名.src』フォルダが作られて、そこにエクスポートされたファイル一式が作成されます。
リンクテーブルを使っている場合、認証情報は .env ファイルが作られてそちらに出力されます。なお、 .env ファイルについてはこちらに詳しく説明されています。
あと、やってみて気づいたのですが、テキストインポートの定義などもちゃんとエクスポートされていました。
エクスポートが完了したらこれらのファイル一式を git に登録すれば、ソースコード管理ができます。なお、 .gitignore も参考となるひな形がリポジトリにあるので、そちらをベースにして自分用に修正してください。
ビルド
エクスポートしたファイルから再度 Access ファイルを構成するには『Version Control』の『Build From Source』を選択します。

もし、既存のファイルを開いてる場合は

のように、 source ファイルからビルドしてよいか確認されます。この場合も、既存のファイル(いま開いているファイル)は、リネームして保存されるとあります。なので、『はい』を押すと、

こんな感じのログ画面が表示されて、処理が進行します。途中で信頼できるファイルか確認されますが、 OK を押して処理を進めます(sourceからビルドしたファイルを開きなおしているためだと思います)。問題なく最後まで進むと、

このような感じでダイアログが表示されて完了です。この時点で、ビルドされた Access ファイルが開かれた状態になっています。改めて、このファイルを操作してみていろいろと試してみても、元のファイルと遜色ないようです。いやー、すごいですね。
オプション
エクスポート時にソースファイルを保存するフォルダが『ファイル名.src』だと何かと不便です。これに対しては、リボンの『View Options』よりオプション設定を開いて、

エクスポート先として src サブフォルダを使うように指定することで解決できます。
なおオプション設定にはいろいろな機能があるようなので、詳しくはこちらをご覧ください。
その他
バックアップではなく、スキーマとアプリケーションが対象なので、テーブルのデータは出力されません。
あと、実際に git に登録するときは .gitignore と .gitattributes を整えておくとよいかと思います。それぞれリポジトリに .default と最後についたひな形があるので、これを元にプロジェクト用に調整すればよいと思います。
トラブル
さて、これで問題なく使えるかと思って、実際に仕事で使っている Access ファイルを対象にエクスポートとビルドを試しました。すると、ビルド後のファイルを確認すると、テーブル、フォーム、クエリ、レポートなど、どれもこれも一部が復元されていないものがあります。
どういうことだろうか?と思って何度も試していると、これらのオブジェクトの名前に一部のカタカナが含まれていると、エクスポートはできるけど、ビルドで読み込まれない、という現象になるようです。
具体的には、元の Access ファイルに

のようなテーブルとフォームが含まれているとします。 Export Source Files を実行すると

のように、ファイルが作成されています。
この状態で Build From Source を実行すると

のように、一部のテーブルやフォームが復元されないことがわかりました。
今回試した範囲だと
- インポート
- エクスポート
- サブ
- ダイアログ
- レポート
- パス
- パターン
- ヘッダ
などの名前が含まれているオブジェクトがビルド時に正しく復元されていませんでした。ただし、カタカナを含むすべてのオブジェクトが問題になっているわけではないのと、ひらがなと漢字の名称でも復元されていないものがあったところが悩ましいところです。
対応方法
さて、元の Access ファイルを復元できないとなるとせっかくのアドインを使うことができません。いろいろと試行錯誤した結果、少なくとも手元の環境の場合は、ソースからビルドしたアドインを使ったところ、問題なくビルドできるようになりました。このバージョン 5.0.1 だけの問題なのかなんなのか、真の原因は不明なのが気持ち悪いところですが・・・
具体的な手順としては Build the add-in from source (Editting and Contributing にあります)の手順に従って、次のようにしました。
- zip からアドインをインストールします
- git からリポジトリをクローンします
- クローンしたリポジトリのルートに適当な Database1.accdb を作ります
- Database1.accdb を開きます
- Version Control メニューから Build from Source を選択します
- ソースフォルダを選択するように求められるのでクローンしたリポジトリ配下の Version Control.accda.src を選択します

- いま開いているファイルとソースフォルダのファイルが異なるため、下記のような警告が表示されますがそのまま OK を押します

- 正常にビルドが完了し Version Control.accda が作成されます
- 一度 Access を閉じます
- 上記の作成された Version Control.accda を開きます
- アドインのインストール画面が表示されます
- 下記のように installed と表示されますが、そのまま『Install Add-in』ボタンをクリックして再インストールします(アンインストールは不要です)

- インストールに成功した旨のメッセージが表示されます

- Access を閉じます
これで、zip ファイルからインストールしたインストール済みのアドインが、ローカルでビルドしたものに入れ替わります。
次回から Access を開くとローカルでビルドしたアドインが呼ばれるようになり、このアドインを使うと上記の問題が出なくなります。
なお、Issue#741 にも上記の経緯を上げてます。
まとめ
これを使えば、大規模な Access のファイルもソースコード管理下におけそうです。これで少しは Access の仕事が楽になるかな?











