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プロシージャでも設定することができます。
関連記事
VBAエキスパートに合格する方法
VBAエキスパートの難易度
VBAエキスパートの独学方法