#457 | 入力値に応じてフォーカス移動先を変えるには? | フォーム、VBA | |
フォームのコントロールの一般的かつ固定的なフォーカス移動順は、[表示]-[タブ オーダー]メニューによって表示される「タブ オーダー」ダイアログ、あるいは各コントロールの「タブ移動順」プロパティで設定することができます。 一方、VBAのプログラムによって動的に次のフォーカスを指定するには、「コントロール名.SetFocus」というコードを実行します。 ここで、あるテキストボックスに入力されている値に応じて次のフォーカス移動先を指定するには、テキストボックスコントロールの"LostFocus/フォーカス喪失後"イベントと上記のSetFocusメソッドを組み合わせてプログラムを作ります。 次の例では、「txtbox1」テキストボックスに入力された値が、1000より大きければtxtbox2コントロールへ、1000以下でかつ500より大きければtxtbox3コントロールへ、それら以外ならtxtbox4コントロールへフォーカスを移動させています。 なお、LostFocusイベントを使っていますので、txtbox1テキストボックス上でEnterキーもしくはTabキーが押されたときにこの処理が実行されます。 Private Sub txtbox1_LostFocus() 'テキストボックスのフォーカス喪失後 '入力値によって次のフォーカスを設定 If Me!txtbox1 > 1000 Then txtbox2.SetFocus ElseIf Me!txtbox1 > 500 Then txtbox3.SetFocus Else txtbox4.SetFocus End If End Sub 実行例:
|
|||
|
Copyright © T'sWare All rights reserved |