お世話になります。フォーム1からフォーム3を呼び出してフォーム1に戻るのは
下記のコードでOKです。
Unload Form3
Set Form3 Nothing
Form1.Enabled = true
Form1.SetFocus ・・・・・・ (1)
フォーム3でコントロールボックスの『X』を押したら、フォーム1、フォーム3の全て終了したいので、下記を追加しました。
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Unload Form3
Set Form3 = Nothing
Form1.Enabled = True
Form1.SetFocus
Unload Form1
Set Form1 = Nothing
End Sub
フォーム3で『X』を押すと (1)の個所がエラーで黄色になり、
実行時エラー'5'、
プロシージャーの呼び出し、または引数が不正です
のエラーメッセージが表示されます。
何か良い解決方法を教えてください。
宜しくお願いします。
フォーム3でコントロールボックスの『X』を押したら、フォーム1、フォーム3の全て終了したいので、下記を追加しました。
その場合、QueryUnloadイベントで『X』を押したときだけ実行するようにしないと
Unload Form3を実行したときにもForm1を終了してしまいますよ。
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = vbFormControlMenu Then
'Unload Form3 Form3でXを押したのでなにもしなくてもUnloadする
'Set Form3 = Nothing のでこの2行は不要
'Form1.Enabled = True Unloadするなら
'Form1.SetFocus この2行も不要
Unload Form1
Set Form1 = Nothing
End If
End Sub
ありがとうございます。うまくいきました。この掲示板はみなさん、親切、丁寧で大変助かります。初心者ですのでこれからも色々質問することが多いと思いますが、宜しくお願いします。
編集 削除