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

解決


310  2003-08-28 01:11:12  No: 79169

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

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


よねKEN  2003-08-28 01:29:22  No: 79170

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


310  2003-08-28 02:21:17  No: 79171

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

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


匿名  2003-08-28 05:03:05  No: 79172

標準モジュールのプロシージャは無理では。
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-28 05:03:58  No: 79173

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


310  2003-08-28 22:12:28  No: 79174

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

有難うございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加