VBAエキスパート(Excelスタンダード) 試験範囲その1-プロシージャ

公開日:2018年8月16日

このページでは、VBAエキスパート(Excelスタンダード)の 試験範囲のうち、「プロシージャ」について概要を説明します。

VBAエキスパート(Excelスタンダード) 試験範囲その1-プロシージャ
目次

1.プロシージャとは

プロシージャとは、マクロの実行最小単位のことをいいます。

プロシージャには種類がありますが、最もよく使用されるのは「Subプロシージャ」です。

Subプロシージャのプログラムは、「Sub マクロ名()」から始まり、「End Sub」で終了します。

プロシージャは他にもFunctionプロシージャやイベントプロシージャ、Propertyプロシージャがあります。

ここではSubプロシージャとFunctionプロシージャについて説明します。

2.他のプロシージャの呼び出し方

他のSubプロシージャを呼び出す場合には、Callステートメントを使用します。

具体的にはSubプロシージャを呼び出したい時に、プログラムの中に「Call Subプロシージャ名」と記述します。

ここでのSubプロシージャ名とは、上述の「Sub マクロ名()」のマクロ名の部分をいいます。要するにそのSubプロシージャを表すプログラム名のことです。

3.Functionプロシージャとは

Functionプロシージャとは、値を返すことができるプロシージャです。

具体的にはあるプロシージャ内からFunctionプロシージャを呼び出した場合に、そのFunctionプロシージャ呼び出して実行した結果を、呼び出し元であるプロシージャに渡すことができます。

「値を渡す」とは、ここでは「呼び出し元のプロシージャ内でその値を使用できる」ということです。

これに対して、Subプロシージャの場合には、Callステートメントで呼び出してもプログラムが実行されるだけで、実行した結果の値を、呼び出し元のプロシージャで使用することはできません。

Functionプロシージャを呼び出す場合には、「Functionプロシージャ名」と記述して呼び出します。

なお、Functionプロシージャのプログラムは、「Function マクロ名() As データ型」から始まり、「End Function」で終了します。

4.プロシージャの引数について

プロシージャを呼び出す場合には、引数(ひきすう)を渡すことができます。

例えば、ある商品の単価と数量から「単価×数量=金額」を計算する「計算」というFunctionプログラムを呼び出すとします。

この場合、呼び出し先のFunctionプロシージャは、例えば「Function 計算(単価 As Long , 数量 As Long) As Long」の記述でプログラムが開始します。

このカッコ内の記述が引数に該当します。このプログラムを使用する場合には、呼び出し元で必ず、単価と数量の2つの変数を設定しなければなりません。

例えば、単価1000、数量5と設定して、「計算プロシージャ」を呼び出す場合には、呼び出し元のプログラム内に「計算(1000,5)」と記述します。

すると、Functionプロシージャである計算プロシージャは、1000×5=5000を計算し、結果である5000を呼び出し元のプログラムに返します。

引数の設定は、値は返しませんがSubプロシージャでも設定することができます。