1-31 [×]ボタンでクローズさせないユーザーフォーム 2021.11.16
次の書籍の第1章~5章を公開しています。
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」
QueryCloseイベントは、フォームが閉じる直前に発生するイベントです。
このイベントは、フォームの閉じ方を感知し、必要に応じてフォームが閉じることをキャンセルできます。
例えば、ユーザーが[×]ボタンを押し、フォームを閉じるのをキャンセルする、また逆にコードでフォームを閉じるのをキャンセルするといった処理が可能です。
サンプルコード①
ユーザーが[×]ボタンを押し、フォームを閉じるのをキャンセルする
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Cancel = True End If End Sub
◇Cancel
引数CancelにTrueを設定すると、クローズをキャンセルします。
◇CloseMode
引数CloseModeは、どの操作でクローズしようとしているのかを判定します。
CloseModeに対応した組み込み定数は次の2つです。
・vbFormControlMenu
ユーザーフォームの[×]ボタンが押された場合。実体は数値の「0」です。
・vbFormCode
VBAのコードでUnloadステートメントが実行された場合。実体は数値の「1」です。
サンプルコード②
VBAのコードからユーザーフォームのクローズをキャンセルする
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormCode Then Cancel = True End If End Sub
書籍紹介140以上のサンプルファイル付き!
知りたいがすぐわかる! やりたいがすぐできる!
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」(Kindle版)
ユーザーフォームを扱えると、VBAでできることが大きく広がります!
本書では、知りたいこと、やりたいことから、逆引きで学びを深められます。
■ 購入:amazon