フォームの終了

解決


Pitto  2005-03-17 12:56:39  No: 88901  IP: [192.*.*.*]

お世話になります。フォーム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'、
プロシージャーの呼び出し、または引数が不正です
のエラーメッセージが表示されます。

何か良い解決方法を教えてください。
宜しくお願いします。

編集 削除
LESIA  2005-03-17 13:32:52  No: 88902  IP: [192.*.*.*]

フォーム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

編集 削除
Pitto  2005-03-17 13:41:02  No: 88903  IP: [192.*.*.*]

ありがとうございます。うまくいきました。この掲示板はみなさん、親切、丁寧で大変助かります。初心者ですのでこれからも色々質問することが多いと思いますが、宜しくお願いします。

編集 削除