Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


936 / 2272 ツリー ←次へ | 前へ→

【9436】プロシージャ名を変数で指定して実行したい 馬の耳にアーメン 07/5/21(月) 19:12 質問[未読]
【9438】解答:出来ません。 ちょっと 07/5/22(火) 11:13 回答[未読]
【9440】Re:プロシージャ名を変数で指定して実行した... hatena 07/5/22(火) 15:11 回答[未読]

【9436】プロシージャ名を変数で指定して実行したい
質問  馬の耳にアーメン  - 07/5/21(月) 19:12 -

引用なし
パスワード
   表題の件ですが
 private sub main(p_prm as string)
  dim v_prc as string
  v_prc = "prc_" & p_prm
  call v
 end sub

private sub prc_a
  処理
end sub

private sub prc_b
  処理
end sub

・・・・

というのうような処理をしたいのです。
application.run v_prc
としても「プロシージャが見つかりません」
メッセージを出力してしまいます。

なにかよい方法を教えてください。

【9438】解答:出来ません。
回答  ちょっと  - 07/5/22(火) 11:13 -

引用なし
パスワード
   Cにはありますが、VBには関数ポインタというものがないので
出来ません。IF文かSELECT文で記述すれば・・・

もしやろうとするとAPIを呼んでやる方法があるみたいです。

【9440】Re:プロシージャ名を変数で指定して実行し...
回答  hatena  - 07/5/22(火) 15:11 -

引用なし
パスワード
   private で宣言しているからでは。

下記のようにPublic宣言したら、問題なく動きましたけど。

Public Sub main(p_prm As String)
  Dim v_prc As String
  v_prc = "prc_" & p_prm
  Application.Run v_prc
End Sub

Public Sub prc_a()
  MsgBox "prc_a!!"
End Sub

Public Sub prc_b()
  MsgBox "prc_c!!"
End Sub

936 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078201
(SS)C-BOARD v3.8 is Free