TextBox の Exit イベント (Access)TextBox.Exit event (Access)

Exit イベントが発生するのは、コントロールがフォーカスを失い、フォーカスが同じフォームまたはレポートにある他のコントロールに移動する前だけです。The Exit event occurs just before a control loses the focus to another control on the same form or report.


Exit(キャンセル)expression.Exit (Cancel)

TextBox オブジェクトを表す変数を取得します。expression A variable that represents a TextBox object.


名前Name 必須 / オプションRequired/Optional データ型Data type 説明Description
CancelCancel 必須Required 整数型 (Integer)Integer True に設定すると、イベントは取り消されます。Set to True to cancel the event.


このイベントは、オプション グループに含まれるチェック ボックス、オプション ボタン、およびトグル ボタンには適用されません。This event does not apply to check boxes, option buttons, or toggle buttons in an option group. オプション グループに対してのみ適用されます。It applies only to the option group itself.

このイベントが発生したときに、マクロまたはイベント プロシージャを実行するには、 OnExit プロパティをマクロ名または "[Event Procedure]/[イベント プロシージャ]" に設定します。To run a macro or event procedure when this event occurs, set the OnExit property to the name of the macro or to [Event Procedure].

Enter イベントは、フォーカスが特定のコントロールに移動する直前に発生するため、 Enter イベント マクロまたはイベント プロシージャを使ってメッセージなどを表示することができます。たとえば、コントロールに入力できるデータの種類を示したりコントロールの使い方を説明する、小さいフォームまたはメッセージ ボックスを表示することができます。Because the Enter event occurs before the focus moves to a particular control, you can use an Enter macro or event procedure to display instructions; for example, you could use a macro or event procedure to display a small form or message box identifying the type of data the control typically contains, or giving instructions on how to use the control.

Exit イベントは LostFocus イベントの前に発生します。The Exit event occurs before the LostFocus event.

LostFocus イベントとは異なり、 Exit イベントはフォームがフォーカスを失ったときには発生しません。Unlike the LostFocus event, the Exit event does not occur when a form loses the focus. たとえば、フォームのチェック ボックスをクリックしてからレポートをクリックする場合を考えます。For example, suppose you select a check box on a form, and then click a report. チェック ボックスをクリックしたときには、 Enter イベントと GotFocus イベントが発生します。The Enter and GotFocus events occur when you select the check box. 一方、レポートをクリックしたときには、 LostFocus イベントだけが発生します。Only the LostFocus event occurs when you click the report. フォーカスが別のウィンドウに移動するので、 Exit イベントは発生しません。The Exit event doesn't occur (because the focus is moving to a different window). 再びフォームのチェック ボックスをクリックして前面に表示させると、 GotFocus イベントは発生しますが、 Enter イベントは発生しません (フォームが前回アクティブだったときにチェック ボックスにフォーカスが設定されていたことによる)。If you select the check box on the form again to bring it to the foreground, the GotFocus event occurs, but not the Enter event (because the control had the focus when the form was last active). Exit イベントは、フォーム上の他のコントロールをクリックしたときにのみ発生します。The Exit event occurs only when you click another control on the form.

フォームのコントロールにあるフォーカスを別のコントロールに移動すると、フォーカスを持っていたコントロールに対する Exit イベントと LostFocus イベントが発生した後、移動先のコントロールに対して Enter イベントと GotFocus イベントが発生します。If you move the focus to a control on a form, and that control doesn't have the focus on that form, the Exit and LostFocus events for the control that does have the focus on the form occur before the Enter and GotFocus events for the control you moved to.

メイン フォームのコントロールにあるフォーカスを、マウスを使ってそのフォームのサブフォーム上のコントロール (サブフォーム上のコントロールを持っていないコントロール) へ移動すると、次のイベントが発生します。If you use the mouse to move the focus from a control on a main form to a control on a subform of that form (a control that doesn't already have the focus on the subform), the following events occur:

  • Exit (メイン フォームのコントロールに対して)Exit (for the control on the main form)
  • LostFocus (メイン フォームのコントロールに対して)LostFocus (for the control on the main form)
  • Enter (サブフォーム コントロールに対して)Enter (for the subform control)
  • Exit (サブフォームでフォーカスを持っていたコントロールに対して)Exit (for the control on the subform that had the focus)
  • LostFocus (サブフォームでフォーカスを持っていたコントロールに対して)LostFocus (for the control on the subform that had the focus)
  • Enter (サブフォームのフォーカスの移動先のコントロールに対して)Enter (for the control on the subform that the focus moved to)
  • GotFocus (サブフォームのフォーカスの移動先のコントロールに対して)GotFocus (for the control on the subform that the focus moved to)

サブフォームで移動先のコントロールにフォーカスが置かれていた場合、そのコントロールには、 enterイベントもGotFocusイベントは発生しませんが、サブフォームのコントロールに対するenterイベントが発生します。If the control that you move to on the subform previously had the focus, neither its Enter event nor its GotFocus event occurs, but the Enter event for the subform control does occur. フォーカスをサブフォーム上のコントロールからメイン フォーム上のコントロールへ移動した場合、サブフォーム上のコントロールに対する Exit イベントと LostFocus イベントは発生せずに、サブフォーム コントロールに対する Exit イベント、およびメイン フォーム上のコントロールに対する Enter イベントと GotFocus イベントだけが発生します。If you move the focus from a control on a subform to a control on the main form, the Exit and LostFocus events for the control on the subform don't occur, just the Exit event for the subform control and the Enter and GotFocus events for the control on the main form.


マウスまたは Tab などのキーを使用して、フォーカスを別のコントロールに移動することがよくあります。You often use the mouse or a key such as Tab to move the focus to another control. この場合、このトピックで述べたイベントの他に、マウス イベントまたはキーボード イベントが発生します。This causes mouse or keyboard events to occur in addition to the events discussed in this topic.


次の例では、2つのイベントプロシージャが [ LastName ] テキストボックスに添付されています。In the following example, two event procedures are attached to the LastName text box. Enter イベント プロシージャでは、テキスト ボックスに入力できるデータの種類を指定するメッセージが表示されます。The Enter event procedure displays a message specifying what type of data the user can enter in the text box. Exit イベント プロシージャでは、別のコントロールにフォーカスする前に変更を保存する場合、ユーザーの移動を確認するダイアログ ボックスが表示されます。The Exit event procedure displays a dialog box asking the user if changes should be saved before the focus moves to another control. ユーザーが [キャンセル] ボタンをクリックすると、引数_cancel_がTrue (1) に設定され、変更内容を保存せずに、フォーカスがテキストボックスに移動します。If the user clicks the Cancel button, the Cancel argument is set to True (1), which moves the focus to the text box without saving changes. ユーザーが [OK ] ボタンを選択すると、変更が保存され、フォーカスが別のコントロールに移動します。If the user chooses the OK button, the changes are saved, and the focus moves to another control.

次の使用例の実行結果を確認するには、[氏名] というテキストボックスを含むフォームに次のイベントプロシージャを追加します。To try the example, add the following event procedure to a form that contains a text box named 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. 
 Exit Sub ' Save changes and exit. 
 End If 
End Sub

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.