| 
    
     |  | 皆様ありがとうございます。 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
 call ch_no()
 End Sub
 
 Sub ch_no()
 UserForm1.CheckBox1.Value = False
 End Sub
 
 とりあえずこのような感じでやっていきます。
 いろいろ試してみます。
 
 ▼ichinose さん:
 >>checkbox1が1つ目のuserform上にある
 >>  true だと 2つ目のuserformが開く
 >>ここまではOK。
 >出来てるコードも記述してください。
 >
 >
 >この二つ目のユーザーフォームをUserForm2 だとします。
 >
 >
 >このcheckbox1をTrueにしたら、直ちに UserForm2をモーダルモードで表示するのだとすれば、
 >
 >
 >Private Sub CheckBox1_Click()
 >  If CheckBox1.Value Then
 >    UserForm2.show
 >    unload UserForm2
 >    CheckBox1.Value=false
 >  End If
 >End Sub
 >
 >これでよいですね!!
 >
 >
 >>Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
 >> UserForm1.CheckBox1.Value = False
 >>End Sub
 >
 >これでも作動しますけど、この記述だとUserForm2の呼び出し元は、
 >UserForm1だと限定してしまいます。
 >UserForm2は、他のモジュールからも呼び出されるかもしれません。
 >今は、そうでなくても将来はそのような仕様になるかもしれません。
 >
 >
 >オブジェクトの独立性を高めるという事を考慮すると、
 >
 >UserForm1.CheckBox1.Value = False
 >
 >というコードは、UserForm2の外で行うのが良いと思いますよ!!
 >
 >
 >UserForm2がモーダレスモードで表示する場合は、簡単ではないですが、
 >それでも
 >オブジェクトの独立性を高めるという事を考えると
 >
 >UserForm1.CheckBox1.Value = False
 >
 >というコードは、UserForm2の外のモジュールに記述できる環境を作成するほうが
 >良いと思いますよ
 
 |  |