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

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

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

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


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

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


簡単に考えていることを書いたが、Frameworkを徐々に作成し、公開していきたいと思う。
今、「デジタル家電」とか「地上デジタル放送」とかあるが、「アナログと何が違うの?」と疑問を持つ方も多いだろう。ウィキペディアを見ても、小難しい説明で分かりにくい。よって、少し「デジタル」の概念を説明してみる。

「漫画の登場人物を模写する」ということを例にしよう。
アナログはトレーシングペーパで写し取る、デジタルは方眼の目があるトレーシングペーパーに写し取る、という感じだ。ただし、デジタルの方は「写し取る」というといい表現ではない。方眼のマス目の真下を見て、そのマスを塗りつぶすか塗らないか、とする。「このマス、半分だけ塗りました」というような中途半端は許されず、塗る/塗らないのどちらかを選ぶ必要がある。
この「どちらかを選ぶ」ということがデジタルの特徴のひとつである。

なお、このマスを塗る/塗らないを判断して塗ったり塗らなかったりする工程を「マス塗りとしておこう。このブログ限定用語だが・・、この先の説明では「マス塗り」という呼称にする。



マス塗りが終わると、「どのマスが塗られて、どのマスが塗られていないか」が分かる。これを座標として見れば、どの座標が塗られていて、どの座標が塗られていない、ということを情報として捉えることができる。例えば、絵を口頭で説明しても同じモノが再現されるということは難しいが、同じ方眼紙を持っていれば「縦12、横16のマスは塗る」というように、絵を見せることなく同じものを再現することができる。
アナログだとトレーシングペーパーによる模写を繰り返すと原画から離れていく可能性があるが、デジタルでは一度デジタル化、つまりマス塗りのようにした情報はそれ以降劣化しないのは、デジタルの特徴のひとつであるが、こういう原理によるものだ。


「マス目が粗いもの」と「マス目が細かいもの」とでマス塗りをすると、マスの粗い方が作業が少ないものの、元の絵からすると乖離が大きくなる。マスの細かい方は作業が多くなる分、元の絵に近くなる。例えば方眼のマス目の一辺の長さが2分の1になると、マス目の数は縦で2倍、横も2倍になるため、2×2で4倍になる。
なお、マス目が細かくなると、それだけマス目が多くなる。マス目が多いと、それだけ情報量が大きくなる。


さて、今回は単純に塗る/塗らないという話を書いた。
・色はどうなんだ?
・動画は?音声は?
・文字データは?
とか疑問もあるかもしれない。が、基本となるのは上記の通りだ。
目覚まし時計が鳴らなくなった、ということで時計を開けてみると、コードが基盤から外れていた。それも2箇所。元のはんだづけが良くなかったのか、外れている様子。
で、久しぶりに半田こてを持って作業したのだが、
・こてのW数が低く、なかなか溶けない。この手なら40~60Wといったところだが、30W。
・基盤に、はんだが「載っている」だけで、穴が空いていない。よくもまあこんな止め方したなあ。もしかして、機械で止めたか。
・配線がもじゃもじゃ。電池ケースを交換してすっきりさせてやった。
・線が細いし、ぎりぎりの長さ。それで充分なのだろうけれど、切れたのは交換。

うう、あまりに久しぶりで、ちょっと下手な仕上がりになったが、機能は回復。

知り合いに、映らなくなった液晶ディスプレイを自力で修理してしまう人がいる。たいていはコンデンサを交換すれば済むが、たまに別の部品(聞き慣れないので忘れた)を交換しないといけないことがあるらしい。彼の家には工作室が。そういうのを見たり、今回のようなことがあると、たまには電子工作をやってみようかと思ったりもする。