- ベストアンサー
UserFormをサブルーチンに出来るか
頓珍漢な質問かもしれませんが、何分ご了承下さい。 標準モジュールで記述時、UserFormをサブルーチンとして呼び出す事は出来ないですか。 プログラムの途中に、複数項目を入力させたいのです。 InputBoxは一つしか入力させられない様だから、UserFormならと、思ったのですが。 Private付プロシージャは、同じモジュールのプロシージャからしか呼び出せないのでしょうか。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>プログラムの途中に、複数項目を入力させたいのです。 この行の期待していることが読み取れません。 もう少し具体的な例を示して説明すれば コメントを得られるだろうと思います・ さて、... >Private付プロシージャは、 >同じモジュールのプロシージャからしか呼び出せないのでしょうか。 はい、呼び出せません。 Privateがその目的で使うコードですから。 '======= UserForm1 のコード Sub BBB() MsgBox ("AAA") End Sub '======= Module1 のコード Sub test() UserForm1.BBB End Sub といった記述をすれば、 標準モジュールのコードから Userform内のプロシジャーを呼び出せますが 一般にはやらないと思います。 私は、 formモジュール内では、イベントを拾うためのコードのみを 記述するようにしています。 '======= UserForm1 のコード Private Sub CommandButton1_Click() kogehoge1 End Sub Private Sub OptionButton1_Click() kogehoge2 End Sub '======= Module1 のコード Sub hogehoge1() '諸々のコード1 End Sub Sub hogehoge2() '諸々のコード2 End Sub といったカンジです。 これにより、 コードたちが1か所に集まるので読みやすくなると思っています。
その他の回答 (1)
- kkkkkm
- ベストアンサー率66% (1719/2589)
標準モジュールのプロシージャからUserFormのテキストボックスの値を取り出したいということでしょうか。 でしたら(テキストボックスの名前がTextBox1なら) UserForm.TextBox1.Text が値になります。 また UserForm.Show でUserFormが表示されます。
お礼
有難うございます
お礼
有難うございまし