2016-08-02 7 views
1

Visual Basicのフォームを使用しているときに、ユーザーが右上の「x」ボタンをクリックしたかどうかをプログラムで判断したいと考えています。私が試してみましたユーザーがx-VBAをクリックするタイミングを決定

:失敗した

Private Sub nameOfForm_Exit() 
    'code goes here 
End Sub 

。どんな助けでも大歓迎です。

+0

QueryCloseイベント:https://msdn.microsoft.com/en-us/library/office/gg278635.aspx(ユーザーがXを押した場合、またはフォームがプログラム的に閉じられたかどうか、など...あなたがそうであれば、フォームが閉じないようにすることができます) – Mikegrann

答えて

5
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 
3

enter image description here あなたは "終了" などの独自の用語を発明することはできません。あなたは上記のコンボボックス(イベントと呼ばれる)でそれらを取らなければなりません。あなたのイベントはUserform自体に関係するので、左のコンボボックスでUserformを選択する必要があります。また、ユーザーフォームのすべてのコントロールが表示され、それぞれに一連のイベントがあります。

QueryCloseは、右上隅の赤いXを参照していると言われています。ユーザーフォームがフォーカスを失ったときに発生する非アクティブ化もあります(ModeLessの場合、ユーザーフォームを閉じずにシートをクリックするとDeactivateがトリガーされます)。ユーザーフォームがQueryCloseで終了した後に終了します。

関連する問題