|
こんばんは。
>ユーザーフォームAがあり、そのフォーム上にテキストボックス1、2とコマンドボタン1と2が配置してあります。
>コマンドボタン1をクリックするとユーザーフォームBが表示される設定がしてあります。
>ユーザーフォームB上にテキストボックス1´、2´とコマンドボタン1´が配置してあります。
>
>ユーザーフォームA上のコマンドボタン1をクリックし、ユーザーフォームBを展開し
>ユーザーフォームB上のテキストボックス1´、2´に値を入力し、コマンドボタン1´
>をクリックすると、その値がユーザーフォームA上のテキストボックス1、2に転記され
>更にコマンドボタン2をクリックした内容の仕事をさせる。
>
>つまり、サブ入力フォームを作り、そこで入力した内容をメインフォーム上のテキスト
>ボックスに転記するのと同時にサブ入力フォーム上のコマンドボタンで、メインフォームのプライベートプロシージャを実行させたいわけです。
出来るという例題コードです。
ユーザーフォームAに当たるユーザーフォームをUserform1とします。
Userform1には、
Textbox1 テキストボックス
Textbox2 テキストボックス
Commandbutton1 コマンドボタン Userform1を表示させる
Commandbutton2 コマンドボタン Textbox1とTextbox2の内容を
メッセージボックスで表示させる
ユーザーフォームBに当たるユーザーフォームをUserform2とします。
Userform2には、
Textbox1 テキストボックス
Textbox2 テキストボックス
Commandbutton1 コマンドボタン Userform2のTextbox1及び、Textbox2の
内容をUserform1のTextbox1
及び、Textbox2に代入し、Userform1の
Commandbutton2をクリックした時と
同じ動作を行う
というコントロールの配置だとします。
Userform1のモジュール
'============================================================
Option Explicit
Private Sub CommandButton1_Click()
UserForm2.Show
End Sub
'============================================================
Private Sub CommandButton2_Click()
MsgBox TextBox1.Text & vbCrLf & TextBox2.Text
End Sub
userform2のモジュール
'=================================
Private Sub CommandButton1_Click()
With UserForm1
.TextBox1.Text = TextBox1.Text
.TextBox2.Text = TextBox2.Text
.CommandButton2 = True
End With
End Sub
標準モジュールに
'=====================================================
Sub main()
UserForm1.Show
End Sub
これでmainを実行して上記の仕様のように作動するか確認してみてください。
(Userform1とUserform2の結合度はちょっと強いかなあ・・)
まっ、可能だよという例ということで・・・。
|
|