オデッセイの運営サイト一覧

Excel®️、Accessのマクロ・VBAのスキルを評価する資格VBAエキスパート

企業・教育機関の皆さまへ 試験会場を探す お問い合せ

やってみよう!Excel VBAで業務改善!|VBAとの出会い編

第15話「モジュールとプロシージャをくわしく知ろう」

第15話「モジュールとプロシージャをくわしく知ろう」

登場人物紹介

標準プロシージャの記述場所

「ここまで話した内容を図にまとめると、こんな感じになる。
VBAの開発では、標準プロシージャとイベントプロシージャを適切に使い分け、かつ、それぞれに適したモジュールにプロシージャを記述していく。
ということが、とても重要な意味を持つんだ」

「なるほどな…。ひとつ疑問があるんだけど…
どうしてオブジェクトに属するモジュールでも、標準プロシージャが使えるんだい?
標準プロシージャは標準モジュールに記述すれば、それで十分なんじゃないのかい?」

「いい質問だな、星。
確かにおまえのいうとおり、それで事足りるように思える。
前にも話したけど…業務システムの中では、いろんな機能を受け持つ複数のプロシージャが互いを呼び出しあいながら、複雑な処理を実行していくんだったよね。
標準モジュールに記述する標準プロシージャは、システム全体で使用するプロシージャになるんだ。
それとは別にオブジェクトの中だけで、共通の処理をまとめたいケースがある。
そういったとき、オブジェクトに属するモジュールに標準プロシージャが記述できたほうが便利なんだ」

星くんが、う~んと首をかしげます。

「具体的には、どんなケースがそれにあたるんだい?」

「…む。具体的ときたか…。そうだな、例えば消費税の計算。
こんなのはどの処理においても、やるべきことは共通だよね。
なら標準モジュールに、消費税の計算プロシージャを記述すべきだよ。
でも、あるフォームの機能を利用するときだけ、パスワードの確認が必要になるとする。
ならこのプロシージャは、そのフォームの属するモジュールに記述して、他からは呼び出せないようにするべきだね」

「え?モジュールによって、標準プロシージャを呼び出せたり、呼び出せなかったりするのかい?」

「そっか…適用範囲の話がまだだったな…ちょっとまってろ…」

八木くんがカタカタとキーボードをたたき、さらに図を追加しました。

シーズン1 「VBAとの出会い」編:エピソード一覧

一覧へ戻る

MENU