Form.LostFocus イベント (Access)

LostFocus イベントは、指定したオブジェクトがフォーカスを失ったときに発生します。

構文

Lostfocus

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

注釈

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

このイベントは、Tab キーを押すかオブジェクトをクリックするなど、ユーザー アクションに応答してフォーカスが移動したとき、または Visual Basic で SetFocus メソッドを使用するとき、またはマクロの SelectObject、GoToRecord、GoToControl、または GoToPage アクションを使用するときに発生します。

コントロールがフォーカスを受け取ることができるのは、そのコントロールの " Visible /可視" プロパティと " Enabled /使用可能" プロパティが [Yes/はい] に設定されている場合だけです。 フォームがフォーカスを受け取ることができるのは、そのフォームにコントロールが配置されていないか、または、すべての可視コントロールが使用不可にされている場合だけです。 可視の使用可能なコントロールがフォームに配置されている場合は、フォームの GotFocus イベントは発生しません。

GotFocus イベントが発生したときに実行されるマクロやイベント プロシージャを使うと、フォームやコントロールがフォーカスを受け取ったときの動作を指定できます。 たとえば、フォームにある各コントロールに GotFocus イベント プロシージャを割り当てると、テキスト ボックスに簡単な指示やメッセージを表示して、アプリケーションの操作方法を示すことができます。 また、フォーカスを得たコントロールに依存するコントロールの使用可能と使用不可を切り替えたり、そのコントロールを表示したりして、次の操作の手掛かりを示すこともできます。

注:

Tab キーを押したときにコントロールからコントロールにフォーカスが移動する順序をカスタマイズするには、タブ オーダーを設定するか、コントロールのアクセス キーを指定します。

The LostFocus event differs from the Exit event in that the LostFocus event occurs every time a control loses the focus. The Exit event occurs only before a control loses the focus to another control on the same form. The LostFocus event occurs after the Exit event.

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

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

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

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

注:

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

2 つの開いているフォームを切り替えると、最初のフォームに対する Deactivate イベントと、2 番目のフォームに対する Activate イベントが発生します。 これら 2 つのフォームに、可視で使用可能なコントロールが含まれていない場合は、切り替える前のフォームに対して LostFocusDeactivate の順でイベントが発生し、切り替えた後のフォームに対して ActivateGotFocus の順でイベントが発生します。

次の例では、フォーカスがオプション ボタンに移動したときに、ラベルにメッセージを表示します。 この例を試すには、次のイベント プロシージャを Contacts という名前のフォームに追加します。このフォームには 、OptionYes という名前のオプション ボタンと LabelYes という名前のラベルが含まれています。

Private Sub OptionYes_GotFocus() 
 Me!LabelYes.Caption = "Option button 'Yes' has the focus." 
End Sub 
 
Private Sub OptionYes_LostFocus() 
 Me!LabelYes.Caption = "" ' Clear caption. 
End Sub

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

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