そろそろVBAのFrameworkの整備を始めようと思う。
Frameworkはバズワードだろうと思うので、こちらで考えているVBAのFrameworkとはどんなものかを書いてみる。

・アプリケーション内で一度生成したら使い続ける処理のうち、ユーザーのカスタマイズを必要としないもの。一般に「共通関数」「共通定数」と呼ばれるものかと思う。
・アプリケーション内で一度生成したら使い続ける処理のうち、ユーザーのカスタマイズが可能なもの。例えばログ出力処理(ログの形式にカスタマイズの余地がある)。
・プログラム上で生成/破棄を必要とする、データに関するもの。例えば特殊なデータ型など。
・プログラム上で生成/破棄を必要とする、処理に関するもの。例えばデータベース接続処理など。

図にすればこんなところか?
VBA 作法/コーディング規約 集約中  ( Excel Access 他)

上記で「生成」とか「破棄」とかいう言葉を使っているが、基本はVBAのクラスモジュールで作成するためである。


Framework作成を思い立ったのは随分前である。作ろうと思った経緯を簡単に書いておく。
ITの開発は、現在非常に効率が悪い。理由はいくつかある。そのうち、一般に目に付きやすい部分として
・IT技術者の業務知識不足
・業務遂行者のIT知識不足
がある。
視点を変えれば
・実際に仕事をしていて、その業務に精通している方がシステムを作れるならかなり最適なものを作れるだろう。
ということになる。

VBAは一般ユーザーの利用が多い言語でもある。よって、自分たちの業務をシステム化する際の助けとなるものがあれば、それほど大きな規模でなければ自分たちで作り上げられるのではないか、それによりIT投資は減らせるのではないか、という思いがある。外部に発注する必要があっても、VBAで「やりたいこと」をある程度具現化しておけば、その具現化したシステムが発注先との間の意思疎通の強力な助っ人になるだろう。そこから仕様を明文化する、非機能要件と言われる部分を肉付けする、といった作業はベンダーに任せればよい。


簡単に考えていることを書いたが、Frameworkを徐々に作成し、公開していきたいと思う。