メインのプロシージャの処理の途中で UserFrom1 を呼び出し、そこで Boolean 型の変数の設定して、 メインにもどってから変数を判定、True なら続行、False なら抜ける、というプロシージャを書きました。
UserForm1 を vbModeless にしなければ一応意図したとおり動くようです。
vbModeless にすると、UserForm1 が表示されたのちもメインが中断されず最後まで実行されてしまうようです。なぜこうなるのでしょうか? またこれを避ける方法はありますでしょうか?
よろしくお願いします。
(UserForm1 に2つの CommandButton、cmdContinue, cmdEnd を配置しました。)
Module1
---
Option Explicit
Public flg As Boolean
Sub Main()
Debug.Print "Process1"
UserForm1.Show
'UserForm1.Show vbModeless '←●これがだめ
If flg = False Then Exit Sub
Debug.Print "Process2"
End Sub
---
Useform1
---
Private Sub cmdContinue_Click()
flg = True
Unload Me
End Sub
Private Sub cmdEnd_Click()
flg = False
Unload Me
End Sub
---