dポイントプレゼントキャンペーン実施中!

お世話になります。
ACCESS2003で、標準モジュールの呼び出しについて次のような流れを
作りたいと思っていますす。

標準モジュール名:TEST
public sub AA()
dim txtB as string (*1

txtB = "TEST.subBB" (*2
call txtB
end sub

実現させるには、*1の命令がobjectまたはmodule型で宣言し、
2)はset命令を利用すると思います。
どのように命令作成してよいか困っています。
実際に作成する場合、どのような設定、命令が必要でしょうか。

既出、文献でも教えていただけないでしょうか。
よろしくお願いします。

A 回答 (2件)

こちらが参考になるでしょう。


http://www.accessclub.jp/bbs3/0346/superbeg10420 …
    • good
    • 0
この回答へのお礼

ありがとうございます。
探していた方法が見つかりました。

お礼日時:2009/07/01 22:48

関数名を文字列で指定するのはまず無理


VBA言えど実行前には構文のチェックや変数のためのメモリー確保を行い実行されています

関数の基本動作からすると呼び出されるとき括弧内に書かれた引数をスタック領域に格納し
関数の先頭アドレスに実行権を移します
しかし現状の構文なら関数の先頭アドレスは持っていません
あくまで文字列です
また、今回のサンプルは引数を持ちませんがVBAには分からないことです

これがC等のポインターで実行されるプログラムならそれなりの書き方も出来ますが
しかしVBAでは出来ないと考えたほうが良いと思われます。

確かにデータの内容にCALLしたい関数を変えたい、値が1ならSub1、2ならSub2、AならSubA
などの様に

しかし想定外の文字がセットされていた場合などCALLすべきアドレスがありません

どうしても実行したいなら

Select Case Dat1
Case "1": Call Sub1()
Case "2": Call Sub2()
Case "A": Call SubA()
Case Else: Call SubZ()
End Select
と記述するしかないと思われます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す