プロシージャの中で他のプロシージャを呼び出したい時にはCall文を使います。Call文は、Call先のSubやFunctionプロシージャに制御を渡し、プロシージャでの処理が終了すると、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
処理①:他のプロシージャ呼び出しによる処理
以下の順番で処理が実行されます。
・最初に処理②:点数判定プロシージャを呼び出して処理を実行します。
↓
・処理が終了すると処理①:サンプルプロシージャに処理が戻ります。
↓
・次に処理③:メッセージプロシージャを呼び出して処理を実行します。
↓
・処理が終了すると処理①:サンプルプロシージャに処理が戻ります。
処理②:点数判定処理
A2セルに入力されている点数が80以上であれば「合格」を、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セルの値をセットします。
↓
・処理②:点数判定プロシージャを呼び出して処理を実行します。
この際、変数:点数も引数として渡します。
↓
・処理が終了すると処理①:サンプルプロシージャに処理が戻ります。
処理②:点数判定処理
処理①から引数として渡された変数:点数を使用して判定処理を実施します。変数:点数の値が80以上であれば「合格」を、80未満であれば「不合格」をB2セルにセットして「合否判定が終了しました。」をMsgBoxで表示します。
※上記ののプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
A2セルに85を入力して<実行>ボタンをクリックします。プログラム条件である80以上に一致する事から、B2セルに”合格”が表示されます。また、”合否判定が終了しました。”のメッセージが表示されました。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
引数を指定した使い方についての説明は以上です。
おわりに
Call文の使い方について説明しました。毎回使用するプロシージャについては、部品化してCall文で呼び出す様なプログラミングをする事でシンプルで見易いコーディングが記述できます。是非有効に活用して下さい。