プロシージャの中で他のプロシージャを呼び出したい時にはCall文を使います。Call文は、Call先のSubやFunctionプロシージャに制御を渡し、プロシージャでの処理が終了すると、Call文の次の処理に制御が移ります。このCall文の使い方について紹介します。
構文
記述方法は以下の通りとなります。
Call文の記述方法
Call [他のプロシージャ名]([引数])
[説明]:
プロシージャの中で他のプロシージャを呼び出したい時には「Call[他のプロシージャ名]([引数])」と記述します。[他のプロシージャ名]には呼び出すプロシージャの名前を記述します。また、[引数]には他のプロシージャに渡す値を指定する事ができます。[引数]は省略する事も可能です。内容を纏めると、「[他のプロシージャ名]で記述したプロシージャを呼び出し、呼び出したプロシージャの処理を実行して下さい。」との意味になります。
[記述例]:
Call 点数判定
Call 点数判定(点数)
使い方
使い方について具体的に説明していきます。
基本的な使い方
基本的な使い方について説明します。
[画面]:
※<実行>ボタンには、以下のプログラミング例が登録されています。
[プログラミング例]:
Sub サンプル()
Call 点数判定
Call メッセージ
End Sub
-------------------------
Sub 点数判定()
If (Range("A2") >= 80) Then
Range("B2") = "合格"
Else
Range("B2") = "不合格"
End If
End Sub
-------------------------
Sub メッセージ()
MsgBox "合否判定が終了しました。"
End Sub
サンプルプロシージャを実行すると「最初にCall文で点数判定プロシージャを呼び出して処理を実行します。点数判定プロシージャの処理が終了すると、またサンプルプロシージャに制御が戻ります。次にCall文でメッセージプロシージャを呼び出して処理を実行します。メッセージプロシージャの処理が終了すると、またサンプルプロシージャに制御が戻ります。サンプルプロシージャでは次の処理が無いため処理を終了します。」の流れとなります。処理内容は「最初に点数判定プロシージャを呼び出して点数判定の処理を実行し、A2セルに入力されている点数の値が80以上であればB2セルに”合格”を、80未満であればB2セルに”不合格”をセットして下さい。次にメッセージプロシージャを呼び出してMsgBoxで”合否判定が終了しました。”を表示して下さい。」との意味になります。
※上記ののプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
A2セルに65を入力して<実行>ボタンをクリックします。プログラム条件である80未満に一致する事から、B2セルに”不合格”が表示されます。また、”合否判定が終了しました。”のメッセージが表示されました。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
基本的な使い方についての説明は以上です。
引数を指定した使い方
引数を指定した使い方について説明します。
[画面]:
※<実行>ボタンには、以下のプログラミング例が登録されています。
[プログラミング例]:
Sub サンプル()
Dim 点数 As Double
点数 = Range("A2")
Call 点数判定(点数)
End Sub
-------------------------
Sub 点数判定(点)
If (点 >= 80) Then
Range("B2") = "合格"
Else
Range("B2") = "不合格"
End If
MsgBox "合否判定が終了しました。"
End Sub
サンプルプロシージャを実行すると「変数:点数にA2セルの値をセットします。次にCall文で点数判定プロシージャを呼び出して処理を実行します。その際に引数として変数:点数の値も渡します。点数判定プロシージャでは引き渡された変数:点数の値を使用して処理を実行します。点数判定プロシージャの処理が終了すると、またサンプルプロシージャに制御が戻ります。サンプルプロシージャでは次の処理が無いため処理を終了します。」の流れとなります。処理内容は「最初に変数:点数にA2セルの値をセットします。次に点数判定プロシージャを呼び出して点数判定の処理を実行しますが、変数:点数の値も引数として渡します。点数判定プロシージャの処理では変数:点数の値が80以上であればB2セルに”合格”を、80未満であればB2セルに”不合格”をセットし、最後にMsgBoxで”合否判定が終了しました。”を表示して下さい。」との意味になります。
※上記ののプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
A2セルに85を入力して<実行>ボタンをクリックします。プログラム条件である80以上に一致する事から、B2セルに”合格”が表示されます。また、”合否判定が終了しました。”のメッセージが表示されました。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
引数を指定した使い方についての説明は以上です。
おわりに
Call文の使い方について説明しました。毎回使用するプロシージャについては、部品化してCall文で呼び出す様なプログラミングをする事で、シンプルで見易いコーディングが記述できます。是非有効に活用して下さい。