次の方法で共有


Control.SetFocus メソッド (Access)

SetFocus メソッドは、フォーカスを、指定したフォーム、アクティブ フォームの指定したコントロール、またはアクティブ データシートの指定したフィールドに移動します。

構文

Setfocus

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

戻り値

なし

解説

すべてのユーザー入力がこのオブジェクトに送信されるように、特定のフィールドまたはコントロールにフォーカスを設定する場合は 、SetFocus メソッドを使用します。

コントロールのプロパティの一部を読み取るために、コントロールにフォーカスがあることを確認する必要があります。 たとえば、テキスト ボックスの Text プロパティを参照するには、テキスト ボックスにフォーカスを移動する必要があります。

また、コントロールがフォーカスを持っていると、そのプロパティを設定できない場合もあります。 たとえば、コントロールがフォーカスを持っている場合、そのコントロールの " Visible /可視" や " Enabled /使用可能" プロパティに False (0) を設定することはできません。

SetFocus メソッドを使うと、移動条件を設定してフォーム内を移動することができます。 たとえば、"質問表" フォームの質問の最初で [ Not applicable /該当しません] を選択すると、それに関連する質問をスキップし、次の質問のコントロールにフォーカスを移動することができます。

フォーカスは、表示されているコントロールやフォームにのみ移動できます。 フォームやフォーム上のコントロールは、フォームの Load イベントが終わるまでは表示されません。 したがって、フォームの Load イベントで SetFocus メソッドを使用する場合、 Repaint メソッドを SetFocus メソッドの前に使う必要があります。

Enabled プロパティを False に設定しているコントロールにはフォーカスを移動できません。 フォーカスをそのコントロールに移動するには、コントロールの Enabled プロパティを True (1) に設定する必要があります。 コントロールの " Locked /編集ロック" プロパティに True が設定されている場合は、そのコントロールにフォーカスを移動できます。

フォームが " Enabled /使用可能" プロパティに True が設定されているコントロールを含む場合は、そのフォーム自体にフォーカスを移動することはできません。 この場合、フォーカスはフォーム上のコントロールにしか移動できません。 このようなフォームに SetFocus メソッドでフォーカスを移動すると、フォームのコントロールのうちで、最後にフォーカスを持っていたコントロールにフォーカスが移動します。

SetFocus メソッドを使用して、コントロールの一種であるサブフォームにフォーカスを移動します。 また、サブフォーム上のコントロールにフォーカスを移動するには、SetFocus メソッドを 2 回使用して、最初にサブフォーム自身にフォーカスを移動し、次にサブフォーム上のコントロールにフォーカスを移動します。

次の例では、SetFocus メソッドを使用して、Employees フォームの EmployeeID テキスト ボックスにフォーカスを移動します。

Forms!Employees!EmployeeID.SetFocus

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

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