変数を使用してプロシージャを呼び出すには?

解決


310  2003-08-27 16:11:12  No: 79169  IP: [192.*.*.*]

プロシージャ名を変数に代入して、
単純に  Call [変数名] でプロシージャを呼び出そうとしましたが、
コンパイルエラー:変数ではなく、プロシージャを指定してください。
となってしまいました。

何か、解決策がありましたら教えて下さい。
宜しくお願いします。

編集 削除
よねKEN  2003-08-27 16:29:22  No: 79170  IP: [192.*.*.*]

VB6ならCallByName関数で、
VB.NETならCallByName関数、または、リフレクションを使うことになると思います。

編集 削除
310  2003-08-27 17:21:17  No: 79171  IP: [192.*.*.*]

早速有難うございます。
がしかし、VBは素人に近いものでヘルプを見ても
使用方法がわかりません。
例えば、フォーム内のテキストボックスに入力されたプロシージャ名を
コマンドボタンを押した時に標準モジュール内のプロシージャを呼び出す
といった場合はどのような記述になるのでしょうか?

申し訳ありませんが宜しくお願いします。

編集 削除
匿名  2003-08-27 20:03:05  No: 79172  IP: [192.*.*.*]

標準モジュールのプロシージャは無理では。
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

編集 削除
匿名  2003-08-27 20:03:58  No: 79173  IP: [192.*.*.*]

Debug.Print CallByName(Me, Text1.Text, VbMethod)
                 ↓
Call CallByName(Me, Text1.Text, VbMethod)

編集 削除
310  2003-08-28 13:12:28  No: 79174  IP: [192.*.*.*]

おかげさまで解決しました。
この機会にクラスについても猛勉強しないといけませんね。

有難うございました。

編集 削除