Visual Basicのフォームを使用しているときに、ユーザーが右上の「x」ボタンをクリックしたかどうかをプログラムで判断したいと考えています。私が試してみましたユーザーがx-VBAをクリックするタイミングを決定
:失敗した
Private Sub nameOfForm_Exit()
'code goes here
End Sub
。どんな助けでも大歓迎です。
Visual Basicのフォームを使用しているときに、ユーザーが右上の「x」ボタンをクリックしたかどうかをプログラムで判断したいと考えています。私が試してみましたユーザーがx-VBAをクリックするタイミングを決定
:失敗した
Private Sub nameOfForm_Exit()
'code goes here
End Sub
。どんな助けでも大歓迎です。
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
MsgBox "Good bye"
'/ To prevent user from closing the form
'/ Set cancel to True
Cancel = True
MsgBox "You can't close me!"
End Sub
あなたは "終了" などの独自の用語を発明することはできません。あなたは上記のコンボボックス(イベントと呼ばれる)でそれらを取らなければなりません。あなたのイベントはUserform自体に関係するので、左のコンボボックスでUserformを選択する必要があります。また、ユーザーフォームのすべてのコントロールが表示され、それぞれに一連のイベントがあります。
QueryCloseは、右上隅の赤いXを参照していると言われています。ユーザーフォームがフォーカスを失ったときに発生する非アクティブ化もあります(ModeLessの場合、ユーザーフォームを閉じずにシートをクリックするとDeactivateがトリガーされます)。ユーザーフォームがQueryCloseで終了した後に終了します。
QueryCloseイベント:https://msdn.microsoft.com/en-us/library/office/gg278635.aspx(ユーザーがXを押した場合、またはフォームがプログラム的に閉じられたかどうか、など...あなたがそうであれば、フォームが閉じないようにすることができます) – Mikegrann