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 つのフォームに、可視で使用可能なコントロールが含まれていない場合は、切り替える前のフォームに対して LostFocus 、 Deactivate の順でイベントが発生し、切り替えた後のフォームに対して Activate 、 GotFocus の順でイベントが発生します。
例
次の例では、フォーカスがオプション ボタンに移動したときに、ラベルにメッセージを表示します。 この例を試す場合は、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 のサポートおよびフィードバックを参照してください。