プロシージャ名を変数に代入して、
単純に Call [変数名] でプロシージャを呼び出そうとしましたが、
コンパイルエラー:変数ではなく、プロシージャを指定してください。
となってしまいました。
何か、解決策がありましたら教えて下さい。
宜しくお願いします。
VB6ならCallByName関数で、
VB.NETならCallByName関数、または、リフレクションを使うことになると思います。
早速有難うございます。
がしかし、VBは素人に近いものでヘルプを見ても
使用方法がわかりません。
例えば、フォーム内のテキストボックスに入力されたプロシージャ名を
コマンドボタンを押した時に標準モジュール内のプロシージャを呼び出す
といった場合はどのような記述になるのでしょうか?
申し訳ありませんが宜しくお願いします。
標準モジュールのプロシージャは無理では。
CallByName はプロシージャというよりも、実際は
メソッドの実行、プロパティの取得・設定を行うものです。
それなので、フォームモジュールないし
クラスモジュールのプロシージャ(メソッド)
でないと無理だと思います。
ちなみに、フォームモジュールの場合は下のような漢字。
--------------------------------------------------------
Option Explicit
Private Sub Command1_Click()
Debug.Print CallByName(Me, Text1.Text, VbMethod)
End Sub
Public Sub AAA()
MsgBox "Aです"
End Sub
Public Sub BBB()
MsgBox "Bです"
End Sub
Debug.Print CallByName(Me, Text1.Text, VbMethod)
↓
Call CallByName(Me, Text1.Text, VbMethod)
おかげさまで解決しました。
この機会にクラスについても猛勉強しないといけませんね。
有難うございました。
ツイート | ![]() |