[VBA] ユーザーフォームの終了イベントが発生しないケース(End ステートメント)

Pocket

ここでは、VBA のユーザーフォームの終了イベントである、UserForm_QueryClose および UserForm_Terminate イベントが発生しないケースについて、簡単なサンプルスクリプトで検証しています。

スポンサーリンク

ユーザーフォームの終了イベントが発生しない

次のユーザーフォームを作成して実行しても、終了イベントである UserForm_QueryClose および UserForm_Terminate イベントは発生しません。

Option Explicit

' 初期イベント
Private Sub UserForm_Initialize()
    ' 出力される
    Debug.Print "UserForm_Initialize"
End Sub

' フォームクリックイベント
Private Sub UserForm_Click()

    ' 出力される    
    Debug.Print "UserForm_Click"

    ' End ステートメントでユーザーフォームを終了させる
    End
    
End Sub

' フォーム終了イベント1
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    
    ' 出力されない(イベント自体が発生しない)
    Debug.Print "UserForm_QueryClose"

End Sub

' フォーム終了イベント2
Private Sub UserForm_Terminate()

    ' 出力されない(イベント自体が発生しない)
    Debug.Print "UserForm_Terminate"

End Sub

確実に何か終了処理が必要であるのであれば、覚えておいた方が良いでしょう。

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *