私が誤って閉じることができなかったユーザーフォームを作成したとき、私は今日、ユーザーフォームを編集したQuery_Closeの取り消し引数が常にTrueと等しい場合に、ユーザーフォームを閉じる方法は?
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' Logic that always evaluated to:
Cancel = True
End Sub
ShowModal
プロパティをTrueに設定されているので、それはですので、あなたがExcelやVBEと対話することはできません一見フォームを殺すことは不可能です。 CloseMode(Alt-F4など)に関係なく、ロジックは常にCancel = True
と評価されます。最終的な解決策は、ブックを保存し、タスクマネージャを使用してExcelを終了することでした。すべての情報が正しく保存されているので、これはうまくいきましたが、これはむしろ避けたいと思うかなり汚い解決策です。
これらの質問:不適切それが解消されないいくつかのエラーが発生し、ブックを閉じると
契約。
Cancel
は常にQuery_Close
イベントでTrue
に等しいとき、ユーザーフォーム(それがすでにロードされている)を閉鎖する方法はありますか?
短い答え:いいえ、それはcancelプロパティのためのものです。フォームを閉じる方法を適切に有効にすることはプログラマの責任です。 – jkpieterse
キャンセルをゼロに設定する - https://msdn.microsoft.com/VBA/Language-Reference-VBA/articles/queryclose-eventを参照してください – Absinthe