スポンサードリンク

Excel VBA プロシージャの種類と特徴について。

ExcelVBAでは、プロシージャという単位でプログラミングを行ないます。

プロシージャ(procedure)とは、複数の処理をまとめたプログラムの単位のことです。

C言語のように、プログラミング言語によっては、関数ということもあります。

VBAのプロシージャには、いくつか種類があります。よく使われるのは、以下の3種類です。

(1)Functionプロシージャ
これまで例として取り上げてきたのは、このタイプのプロシージャです。

Functionプロシージャは、関数プロシージャとも呼ばれるように、何らかの処理(計算など)を行なった後に、戻り値を返すことができます。

また Excelのワークシート上で、セルの数式に使えることもメリットです。


(2)Subプロシージャ
Subプロシージャは、何らかの処理を行なうプロシージャです。サブルーチンと呼ばれることもあります。

Subプロシージャは、他のプロシージャから呼び出して使います。

またSubプロシージャは、処理を分割する時に便利です。

プログラムが長くなると、メンテナンスが大変だし、複数のプロシージャで同じプログラムが重複することがあります。

そんな時は、役割ごとにプログラムをSubプロシージャ化することで、メンテナンスが容易になり、プログラムの重複が防げます。(再利用性が高まる)

しかしSubプロシージャは、Functionプロシージャと違い、戻り値を返すことは出来ません。


(3)イベントプロシージャ
イベントプロシージャは、イベント(出来事)が起こったことをキッカケに、システム(コンピューター)が、自動的に呼び出すプロシージャです。これが最大の特徴です。

FunctionプロシージャやSubプロシージャは、プログラマーやユーザーが、呼び出すキッカケを作らないと実行できないのに対し、イベントプロシージャは自動的に呼び出されます。

例えば、ユーザーがボタンをクリックしたこと(出来事)をキッカケに、イベントプロシージャに書かれたプログラムが実行されます。

プログラム実行の対象となるイベントは、沢山あります。

またイベントプロシージャは、他のプロシージャから呼び出して使うことも可能です。


【補講】
これらのプロシージャで共通していることは、以下の2つです。

(1)引数を受け取ることができる。
プロシージャを呼び出す時に渡す「実引数」のデータ型と、プロシージャ側で受け取る「仮引数」のデータ型を一致させる必要があります。

ただしイベントプロシージャだけは、システムが自動的に引数を渡します。


(2)他のプロシージャ内で呼び出せる
上記の3つのプロシージャは、他のプロシージャから呼び出して使えます。

意外と忘れられがちですが、イベントプロシージャの場合も「Call ステートメント」を使うことで、呼び出すことが可能です。


プロシージャの種類と特徴については、実際にプログラミングを行ない、使っていくうちにわかるようになります。

今の段階では難しく感じるかも知れませんが、安心してください。

スポンサードリンク






Excel VBA 初心者入門講座 TOPへ