ユーザーフォームが閉じる直前に処理を実行する : Excel VBA
ユーザーフォームが閉じる直前に発生するイベントは、QueryCloseです。
イベント構文 : UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
ユーザーフォームが閉じる直前に、QueryCloseイベントが発生します。閉じる直前なので、フォームに入力されたデータをシートに代入するなどの時に使用します。また、CloseModeを判定することで閉じる理由を取得することができます。
《引数》
・Cancel : Trueを代入すると、閉じるのを中止します。
・CloseMode : 閉じるイベントの発生理由が取得できます。発生理由は下記の定数で判定できます。
vbFormControlMenu : 値は0、右上の[×]ボタンがクリックされた場合
vbFormCode : 値は1、VBAコードのUnloadが実行された場合
Homeに戻る >
Excel フォームのTipsへ
Excel実行画面
ユーザーフォームを閉じる為、シート上にコマンドボタンを配置し、クリックすると閉じるコードをClickイベント内に入力します。
コマンドボタンがクリックされると、Clickイベントが発生し、Unloadでユーザーフォームを閉じます。
Unloadが実行されると、QueryCloseが発生しメッセージを表示、ユーザーフォームを閉じます。
コマンドボタンのClickイベントと、ユーザーフォームのQueryCloseイベントコードです。
CloseModeを判定し、[×]ボタンでは閉じられなく、設置したコマンドボタンのみ閉じるように出来ます。。
Excel VBAコード
■ユーザーフォームを閉じるコード
Option Explicit
Private Sub CommandButton1_Click()
Unload UserForm1
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
MsgBox "ユーザーフォームを閉じます"
End Sub
■CloseModeを判定し設置したコマンドボタンのみで閉じるようにしたコード
Option Explicit
Private Sub CommandButton1_Click()
Unload UserForm1
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
MsgBox "[×]ボタンではなく、[閉じる]ボタンを使用してください。"
End If
End Sub
Homeに戻る >
Excel フォームのTipsへ
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します
Copyright (c) Excel-Excel ! All rights reserved