So-net無料ブログ作成
検索選択

VBA フォーカスを移動する [VBA]

 フォーカスは、現在操作対象となっているコントロールを示します。
 例えば、画面上にテキストボックスAと、テキストボックスBの、2つのテキストボックスが配置されているとします。
 テキストボックスAにフォーカスがある場合、キーボードから入力を行うと、その内容はテキストボックスAに入力されます。
 この時、テキストボックスBへ入力を行いたい場合は、フォーカスをテキストボックスBに移動させます。

 フォーカスを移動させるには、通常のユーザの操作では、目的のコントロールをマウスでクリックする、タブキーを押下する、などがあります。

 これをVBから行うには、SetFocusメソッドを使用します。
 テキストボックスA(txtA)にフォーカスを移動する場合は、

Me.txtA.SetFocus

 と、します。

 コントロールのメソッドなので、対象となるコントロールにSetFocusメソッドがある場合のみ使用可能です。
 入力系のコントロールであれば、テキストボックス(TextBox)、コンボボックス(ComboBox)、リストボックス(ListBox)、チェックボックス(CheckBox)などです。

 フォーカスを移動させようとしているコントロールが、フォーカスを受け取れない状態の場合は、エラーになります。
 Enabled(使用可能)プロパティがFalseの時などです。

 複数のフォームを開いた状態で、目的のフォームに切り替える場合は、

Forms("FormA").SetFocus

 と、します。
 別のフォームのコントロールに対してSetFocusを行っても、フォームは切り替わりません。
 例えば、
Forms("FormA").txtB.SetFocus
 としても、フォームは現在のフォームのままになります。
 この後、
Forms("FormA").SetFocus
 とすると、
 フォームAのtxtBにフォーカスがある状態で、フォームAに切り替わります。

 同様に DoCmd.GoToControlでも、フォーカスを移動させることができます。

DoCmd.GoToControl "txtA"

 と、することで、txtAにフォーカスが移動します。

 SetFocusメソッド、DoCmdともに動作は同じですが、SetFocusメソッドが推奨です。



【2万円から3万円の、格安ホームページ作成サービス】

nice!(1)  コメント(0)  トラックバック(0) 

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。
※URL(リンク)は記述できません。

トラックバック 0

トラックバックの受付は締め切りました