| 
    
     |  | ▼俺は何処から来たのか さん: こんにちは。
 
 >ありがとうございます。
 >
 >確かに、
 >FormX.Tag = Me.Name
 >FormX.Show
 >とすると、FormXのモジュールで呼び出し側の
 >フォーム名が得られました。
 >
 >しかし、FormXのモジュール内で、呼び出し側の
 >フォームをオブジェクトとして、呼び出し側フォーム
 >上のコントロールのプロパティに値を設定したり
 >できませんでした。
 >
 >例えば、FormX内で、
 >
 >Set SS= FormX.Tag
 >SS.TextBox1 = "1234"
 >
 >ということがませんでした。
 >つまり、オブジェクトの名称を得て、
 >それをオブジェクトとして認識させる方法があれば
 >お教えください。
 >よろしくお願いします。
 >
 >
 >▼[名前なし] さん:
 >>呼び出し側のフォームで、FormXのTagプロパティに名前をセットして
 >>
 >> FormX.Tag = Me.Name
 >> FormX.Show
 >>
 >>FormXフォーム側でMe.Tagで判別するとか。
 >>
 >> Select Case Me.Tag
 >> Case "UserForm1"
 >>  ・
 >>  ・
 >>  ・
 
 基本的には、[名前なし] さんの手法に賛成です。FormXの結合度が弱そうだから・・。
 
 Tagプロパティで問題があるならば、独自プロパティをFormXに作成しては?
 FormXのモジュールに
 Public caller_form As Object
 
 等と宣言しておいて
 
 呼び出しフォームでは
 with FormX
 Set .caller_form = Me
 .Show
 End With
 なんていうコード
 
 すると
 FormXでは、
 MsgBox caller_form.TextBox1.Text
 なんてコードが作動します。
 
 |  |