TextBox.Exit イベント (Access)

Exit イベントが発生するのは、コントロールがフォーカスを失い、フォーカスが同じフォームまたはレポートにある他のコントロールに移動する前だけです。

構文

終了 (キャンセル)

TextBox オブジェクトを表す変数。

パラメーター

名前 必須 / オプション データ型 説明
Cancel 必須 整数型 (Integer) True に設定すると、イベントは取り消されます。

注釈

このイベントは、オプション グループに含まれるチェック ボックス、オプション ボタン、およびトグル ボタンには適用されません。 オプション グループに対してのみ適用されます。

このイベントが発生したときに、マクロまたはイベント プロシージャを実行するには、 OnExit プロパティをマクロ名または "[Event Procedure]/[イベント プロシージャ]" に設定します。

Enter イベントは、フォーカスが特定のコントロールに移動する直前に発生するため、 Enter イベント マクロまたはイベント プロシージャを使ってメッセージなどを表示することができます。たとえば、コントロールに入力できるデータの種類を示したりコントロールの使い方を説明する、小さいフォームまたはメッセージ ボックスを表示することができます。

Exit イベントは LostFocus イベントの前に発生します。

LostFocus イベントとは異なり、 Exit イベントはフォームがフォーカスを失ったときには発生しません。 たとえば、フォームのチェック ボックスをクリックしてからレポートをクリックする場合を考えます。 チェック ボックスをクリックしたときには、 Enter イベントと GotFocus イベントが発生します。 一方、レポートをクリックしたときには、 LostFocus イベントだけが発生します。 フォーカスが別のウィンドウに移動するので、 Exit イベントは発生しません。 再びフォームのチェック ボックスをクリックして前面に表示させると、 GotFocus イベントは発生しますが、 Enter イベントは発生しません (フォームが前回アクティブだったときにチェック ボックスにフォーカスが設定されていたことによる)。 Exit イベントは、フォーム上の他のコントロールをクリックしたときにのみ発生します。

フォームのコントロールにあるフォーカスを別のコントロールに移動すると、フォーカスを持っていたコントロールに対する Exit イベントと LostFocus イベントが発生した後、移動先のコントロールに対して Enter イベントと GotFocus イベントが発生します。

メイン フォームのコントロールにあるフォーカスを、マウスを使ってそのフォームのサブフォーム上のコントロール (サブフォーム上のコントロールを持っていないコントロール) へ移動すると、次のイベントが発生します。

  • Exit (メイン フォームのコントロールに対して)
  • LostFocus (メイン フォームのコントロールに対して)
  • Enter (サブフォーム コントロールに対して)
  • Exit (サブフォームでフォーカスを持っていたコントロールに対して)
  • LostFocus (サブフォームでフォーカスを持っていたコントロールに対して)
  • Enter (サブフォームのフォーカスの移動先のコントロールに対して)
  • GotFocus (サブフォームのフォーカスの移動先のコントロールに対して)

以前にサブフォームの に移動したコントロールにフォーカスがあった場合、 その Enter イベントも GotFocus イベントも発生しませんが、サブフォーム コントロールの Enter イベントは発生します。 フォーカスをサブフォーム上のコントロールからメイン フォーム上のコントロールへ移動した場合、サブフォーム上のコントロールに対する Exit イベントと LostFocus イベントは発生せずに、サブフォーム コントロールに対する Exit イベント、およびメイン フォーム上のコントロールに対する Enter イベントと GotFocus イベントだけが発生します。

注:

多くの場合、マウスや Tab などのキーを使用して、フォーカスを別のコントロールに移動します。 この場合、このトピックで述べたイベントの他に、マウス イベントまたはキーボード イベントが発生します。

次の例では、 LastName テキスト ボックスに 2 つのイベント プロシージャがアタッチされています。 Enter イベント プロシージャでは、テキスト ボックスに入力できるデータの種類を指定するメッセージが表示されます。 Exit イベント プロシージャでは、別のコントロールにフォーカスする前に変更を保存する場合、ユーザーの移動を確認するダイアログ ボックスが表示されます。 ユーザーが [キャンセル ] ボタンをクリックすると、 Cancel 引数が True (1) に設定され、変更を保存せずにテキスト ボックスにフォーカスが移動します。 ユーザーが [OK] ボタンを選択すると、変更が保存され、フォーカスが別のコントロールに移動します。

この例を試すには、 LastName という名前のテキスト ボックスを含むフォームに次のイベント プロシージャを追加します。

Private Sub LastName_Enter() 
 MsgBox "Enter your last name." 
End Sub 
 
Private Sub LastName_Exit(Cancel As Integer) 
 Dim strMsg As String 
 
 strMsg = "You entered '" & Me!LastName _ 
 & "' as your last name." & _ 
 vbCrLf & "Is this correct?" 
 If MsgBox(strMsg, vbYesNo) = vbNo Then 
 Cancel = True ' Cancel exit. 
 Else 
 Exit Sub ' Save changes and exit. 
 End If 
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。