CommandButton.GotFocus イベント (アクセス)

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

構文

GotFocus

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

注釈

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

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

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

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

注:

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

The GotFocus event differs from the Enter event in that the GotFocus event occurs every time a control receives the focus. GotFocus イベントは、コントロールがフォーカスを受け取るたびに発生します。 たとえば、フォームのチェック ボックスをオンにしてからレポートをクリックし、再びフォームを前面に表示するためにフォームのチェック ボックスをクリックする場合、 GotFocus イベントは、チェック ボックスが最初にフォーカスを受け取ったときと、最後にフォーカスを受け取ったときに発生します。 これに対して、 Enter イベントが発生するのは、チェック ボックスが最初にクリックされたときだけです。 GotFocus イベントは、 Enter イベントよりも後に発生します。

フォームのコントロールにあるフォーカスを別のコントロールに移動すると、フォーカスを持っていたコントロールに対する 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 の順でイベントが発生します。

次の例では、フォーカスがオプション ボタンに移動したときに、ラベルにメッセージを表示します。 この例を試す場合は、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 のサポートおよびフィードバックを参照してください。