こんどは、バージョン管理と新しいバージョンの配布の観点で説明します。既に説明を加えてしまってあるので簡単に説明することにします。

データが書き込まれたExcelブックのVBAだけを更新する問題。

これまでの説明でもうお解りのように、Excelワークブックはシートデザイン、計算式、マクロといった「仕組み」と利用者が登録(保存)した「データ」が1ファイルに収まってしまうため、一見ハンドリングが良いように見えますが、では「仕組み」だけをバージョンアップするのに苦慮します。
単に、モジュールを差し替えるような仕組みを考えると「モジュール自動入れ替え機能」のようなものが考えられますが、次のような問題があります。

このようなことから、単にモジュールを入れ替える仕組みを模索しても、それを実用できる環境への設定変更や、本体プログラムのコード変更を要求されてしまうことになります。

戻る 先頭に戻る

アドインなら、上書きコピーで入れ替えられる。

→複数のExcelブックからでも1つのアドインで済む。

前章での説明でもうお解りですね。特に大勢に配布したり、作り込んだ機能が数多くコピーされる場合は、その「仕組み」の更新について、新しいアドインファイルを該当のフォルダに上書きコピーさせるだけで済みます。

前の方で、モジュールを入れ替えて「仕組み」を更新させる説明をしていますが、この方法はVBプロジェクトがパスワードで保護されていると実現しませんでした。しかし、このアドインで上書きコピーにて更新する方法であれば、VBプロジェクトがパスワードで保護されていても問題ありません。

→収容フォルダを明示できれば、大勢に配布しても1つのアドインで良い。

ワークブックからアドインをどのように呼び出すかの問題はありますが、「ワークブックと同じフォルダから」が一般的でしょう。例えば同じような「報告書」が案件ごととか担当者ごととか複数ある場合、所定のフォルダにまとめて収容するようにすれば、アドインは1つで済みます。

全社のワークフローのような仕組みも作りましたが、この場合は、全社共通のサーバにフォルダを定めてアドインを置いておき、ワークブックからはフォルダ名ごと固定してアドインを呼び出すようにしてあります。このため、ワークブックは各部署ごとに配布してしまいますが、「仕組み」の管理は1つのアドインを更新させるだけで全社のどこから参照されるものでも最新に更新できるようになりました。

戻る 先頭に戻る

大勢に配布する場合は、きちんとバージョン管理を。

大勢(又は多くのワークブックで)長く繰り返し利用する「仕組み」では、不具合がなくても機能改変などで更新させる必要が出てきます。
この時、単に「アドイン」を上書きコピーで入れ替えれば良いというのではなく、「このバージョンからはシートが追加になる」とか「計算式を変更する」なども考えられます。

このようなことに対応するためにも、ワークブック側のバージョンと読み込んだアドインのバージョンが比較できるようにし、バージョンの差異判断で何かワークブック側への変更が起きても、アドイン側から変更が掛けられるようにしておきます。

実は、前章のツールバーを持つアドイン動作のサンプルでは、これらの配慮も実装してあります。モジュール定数(Const)にバージョンが設けてあり、通常はこれをワークブックの「設定」シートの3行目に登録しますが、差異があると「バージョン更新」のプロシージャに飛ぶようになっており、ここでワークシート側への変更記述を書き込んでおけばバージョンが変更になった時だけ処理が行なえるようになっています。