プロシージャの種類
マクロの最小実行単位を プロシージャと呼びます。プロシージャは、モジュールに記述します。一般的な表現として使われる「マクロ」とは、このプロシージャを指します。「マクロを作った」というのは、プロシージャを作成したことであり、「マクロを実行する」というのは、作成したプロシージャを実行するという意味です。
プロシージャには、次の種類があります。
◎Subプロシージャ
一般的なプロシージャです。多くのマクロがSub プロシージャとして作成されます。Sub プロシージャは、値を返すことができません。
◎Functionプロシージャ
マクロを実行した結果、何らかの値を返すことができるプロシージャです。Functionプロシージャは、セルの中に記述して、SUM関数やVLOOKUP関数などワークシート関数と同じように使うことも可能です。Function プロシージャについては、スタンダードで解説します。
◎Property プロシージャ
クラスモジュールで使用するプロシージャです。本書では解説しません。
< ベーシック公式テキスト P28 >
「SubプロシージャとFunctionプロシージャの違いは、値を返すか返さないかの違いか…。
サラッと書いてあるけど、セルから関数のように呼び出せるってことは、
独自の関数をFunctionプロシージャで作ることもできるってことか…。
Excel VBA、おそるべし…だな。
Propertyプロシージャについては、解説しない…と」
ソースのツンとした香りが、森川くんの鼻を刺激します。
彼は、テキストを汚さないように注意しながら、焼きそばを口に運びました。
「…Callステートメントを使うと、別のプロシージャを呼び出すことができるっと。
これって、要するにサブルーチンの呼び出しだよな…」
複数のプロシージャ内で、何度も同じ処理を行うようなとき、その処理を独立したプロシージャとして作成し、複数のプロシージャからCallステートメントで呼び出すようにすると、同じコードを何度も記述しないで済むため、マクロの作成効率が高まります。
<中略>
しかし、その反面で、Callステートメントによる別プロシージャの呼び出しを多用すると、マクロ全体の流れが把握しにくくなり、動作の検証などに悪影響を及ぼします。
< ベーシック公式テキスト P33 >