トップ > 逆引きで学ぶ ユーザーフォーム&コントロール > 1-31 [×]ボタンでクローズさせない

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

ページトップへ戻る
Copyright(C) 2009- 坂江 保 All Rights Reserved.