Excel VBAで開発していると、数行しか修正していないのに該当ブックのファイルサイズが数キロ~数メガバイト増えた経験はあるだろう。
モジュールをエクスポート/インポートすることでファイルサイズを抑えることも可能だが、この方法だと逆にファイルサイズが増える場合もある。


こういう場合、別のバージョンのExcelで開き、VBAを数行修正し、保存するとファイルサイズが劇的に減少することがある。
ある程度勝手に履歴を持っていてくれて、その履歴がバージョンごとに持ち方が違うのかな?という推測をしているが、実際のところは定かではない。


なお、上記の措置はExcel2000/2002/2003 間、Excel97/2000間で確認している。それより以前やそれ以外の組み合わせでは確認していない。

また、サービスパックが違うだけでも同様な事象は経験した。あまり気にしていなかったが、Excel2000のSP1とSP2?だったか?

なお、上記は動作保障をするものではありません。念のため。





ある現場で作った関数と似たり寄ったりの関数を他所の現場で作る、ということはよくある。


そこで共通関数を用意し、公開しようと考えている。


今回は簡単な構想図のみアップしておく。



すべて Class モジュールで作成する。常駐させる/させないはまた図を詳細化していこうと思う。






※書き直し /八月末削除予定 /クラス基礎

VBAを行ううえではJavaのデザインパターンをすべて理解する必要はないと思う。しかし「思想や考え方」は他の言語にも通じるものがあると感じている。


以前の経験談だが、ある開発プロジェクトでAccessを使っていたが、初代の人が途中で投げ、2代目がやはり途中で投げ、私が3代目だった。継ぎ足しで無理矢理作っていて、例えば値を表示するだけのコントロールオブジェクトもテキストであったりラベルであったりと、フォームによってばらばらであった(一例ですが、そんな単純なものではなかったです)。その際、Adapter パターンに似たものを考案し、実装したが、その方が開発効率は上がった。


VBAは継承ができない、オーバーロードが使えないなど、オブジェクト指向言語ではないが、デザインパターンに触れてからは Singleton を試してみたりと、思想は広がってきている。