|
▼年寄り さん:
こんばんは。
>ユーザーフォームが二つあります。
> UserForm1,UserForm2
>
>UserForm1にはTextBox1があります。
>UserForm2にはCommandButton1があります。
>
>UserForm1のTextBox1に、最初の文字が "z" と入力されると、UserForm1を消し、UserForm2を表示させます。
>UserForm2でCommandButton1をクリックすると、UserForm1のTextBox1の値を消し、UserForm2を消し、UserForm1を表示させます。
>
標準モジュールに
'=================================================
Sub test()
Load UserForm1
Do While UserForm1.unload_flg = False
UserForm1.Show
Loop
Unload UserForm1
End Sub
Userform1のモジュールで
'==================================================
Public unload_flg As Boolean
'==================================================
Private Sub TextBox1_Change()
If TextBox1.Text = "z" Then
Me.Hide
UserForm2.Show
TextBox1.Text = ""
End If
End Sub
'==================================================
Private Sub UserForm_Initialize()
unload_flg = False
End Sub
'=======================================================================
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode <> 1 Then
Cancel = True
Me.Hide
unload_flg = True
End If
End Sub
Userform2のモジュールで
'===========================================================
Private Sub CommandButton1_Click()
Unload Me
End Sub
として、testを実行してみてください。
尚、
>UserForm1のTextBox1に、最初の文字が "z" と入力されると、UserForm1を消し、UserForm2を表示させます。
とありますが、
Userform1を消さなくてもよいのなら、もっと簡単なんですけど・・。
(つまり、Userform1の上にUserform2がオーバーライドされる仕様)
これでも良いのではないですか?
|
|