「ここまで話した内容を図にまとめると、こんな感じになる。
VBAの開発では、標準プロシージャとイベントプロシージャを適切に使い分け、かつ、それぞれに適したモジュールにプロシージャを記述していく。
ということが、とても重要な意味を持つんだ」
「なるほどな…。ひとつ疑問があるんだけど…
どうしてオブジェクトに属するモジュールでも、標準プロシージャが使えるんだい?
標準プロシージャは標準モジュールに記述すれば、それで十分なんじゃないのかい?」
「いい質問だな、星。
確かにおまえのいうとおり、それで事足りるように思える。
前にも話したけど…業務システムの中では、いろんな機能を受け持つ複数のプロシージャが互いを呼び出しあいながら、複雑な処理を実行していくんだったよね。
標準モジュールに記述する標準プロシージャは、システム全体で使用するプロシージャになるんだ。
それとは別にオブジェクトの中だけで、共通の処理をまとめたいケースがある。
そういったとき、オブジェクトに属するモジュールに標準プロシージャが記述できたほうが便利なんだ」
星くんが、う~んと首をかしげます。
「具体的には、どんなケースがそれにあたるんだい?」
「…む。具体的ときたか…。そうだな、例えば消費税の計算。
こんなのはどの処理においても、やるべきことは共通だよね。
なら標準モジュールに、消費税の計算プロシージャを記述すべきだよ。
でも、あるフォームの機能を利用するときだけ、パスワードの確認が必要になるとする。
ならこのプロシージャは、そのフォームの属するモジュールに記述して、他からは呼び出せないようにするべきだね」
「え?モジュールによって、標準プロシージャを呼び出せたり、呼び出せなかったりするのかい?」
「そっか…適用範囲の話がまだだったな…ちょっとまってろ…」
八木くんがカタカタとキーボードをたたき、さらに図を追加しました。