|
>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の外のモジュールに記述できる環境を作成するほうが
良いと思いますよ
|
|