String 型変数に格納されたプロシージャ名での呼び出し |
対象バージョン : 97, 2000, 2002, 2003, 2007
最終更新日 : 2007/03/11
(オリジナル作成日:1996/10/08)
概 要
String 型変数にプロシージャ名を格納し、呼び出すプロシージャを動的に変更する方法です。
手 順
下2桁が連番となっているプロシージャが PROC01 から PROC10 まで 10 個あり、引数 Arg_ProcNo の値に応じて呼び出すプロシージャを変えるものとします。
【例】 Arg_ProcNo の値が 1 の場合 PROC01 を、8 の場合 PROC08 を呼び出す。
1.呼び出すプロシージャが Function プロシージャの場合
Eval 関数を使用します。
Function CallProc(Arg_ProcNo As Integer) Dim ProcName As String Dim RetVal ProcName = "PROC" & Format(Arg_ProcNo, "00") & "()" RetVal = Eval(ProcName) End Function
呼び出すプロシージャへ引数を渡すことも可能です。
ProcName = "PROC" & Format(Arg_ProcNo, "00") & "(Arg1, Arg2, ・・・)"
2.呼び出すプロシージャが Sub プロシージャの場合
Run メソッドを使用します。
Function CallProc(Arg_ProcNo As Integer) Dim ProcName As String ProcName = "PROC" & Format(Arg_ProcNo, "00") Run ProcName End Function
プロシージャからの戻り値を破棄しても良い場合は、Run メソッドにより Function プロシージャを呼び出すことも可能です。
改訂履歴