指定の動作中ユーザーフォーム終了方法
お世話になっております。
タイトルに書ききれなかったため、詳しく書かせていただきます。
UserForm
UserFormA
UserFormB
UserFormC があります。
UserFormには、UserFormA,UserFormB,UserFormCを起動するための
コマンドボタンが配置されています。
UserFormA.Show とかです。
UserFormAは、UserFormB,UserFormCと連携して
グラフを作成したりします。
UserFormAのCombobox1には、値が入っており、
UserFormAのCommandButtonを押したら、
UserFormAのCombobox1の値をUserFormBに入れてCommandbuttonを押す、
UserFormAのCombobox1の値を,UserFormC入れてCommandbuttonを押す
という動作をしております。
今まで、UserFormを閉じる動作をしたら
「閉じますか?」という確認ウィンドウが出て、
強制的にEndで終わりにしておりました。
------------------------------------
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then '終了するって書いたら
Cancel = Not FP_GetResult
If Cancel = 0 Then 'はい を押した場合の判断
With ThisWorkbook.Worksheets("TEST")
.Select
End With
End
End If
End If
'「はい」を押さない場合、終了しない。
Application.ScreenUpdating = True
End Sub
' キャンセルするかを確認する処理
Private Function FP_GetResult() As Integer
If MsgBox("終了しますか?", vbInformation + vbYesNo) = vbYes Then
FP_GetResult = True
Else
FP_GetResult = False
End If
End Function
----------------------------------
ただ、今回は大元のUserFormも起動しており、
UserFormは終了させたくありません。(再表示ということでも良いのですが…)
If UserForm.Visible = False Then
UserForm.Show
End If
上記で、UserFormが表示されているか確認はできますが、
Endの前に入れようと、後に入れようと
UserForm.showが実行されることはありません。
だからといって、Exit Subを使うと
UserFormB,UserFormCの動作を継続して行ってしまいます。
分かりにくいところがあれば追記しますので、
回答をお願い致します!