#518 指定文字数キーインで自動的にフォーカス移動させるには? フォーム、VBA

テキストボックスにデータを入力する際には、通常はEnterキーやTabキーもしくは他のコントロールをクリックするなどしてそのテキストボックスへの入力値を確定する必要があります。
また定型入力プロパティを設定することでテキストボックスへの入力文字数を制限することはできますが、その文字数分入力してもフォーカスは次のコントロールへ移動まではしてくれません。

そこでここでは、テキストボックスの「Change/変更時イベント」と「Textプロパティ」を使って、指定文字数キーインされたら自動的に次のコントロールにフォーカス移動させる方法を例示します。

「Change/変更時イベント」はテキストボックスに対して何らかの変更が1文字でも行われたら発生するイベントです。つまり1文字キーインするたびに発生するので、そのタイミングによって指定文字数がキーインされたかどうかを判別することができます。

また「Textプロパティ」によって現在入力中の文字列全体を取得することができます(Valueプロパティは入力確定後の値しか取得できないのでここでは使えません)。この長さを調べることで、指定文字数分キーインされたかどうかを判別することができます。


次の例では、テキストボックス「IPアドレス1」に3文字入力されたら「IPアドレス2」のコントロールにフォーカスを移動しています。

コード例:

Private Sub IPアドレス1_Change()

  If Len(Me!IPアドレス1.Text) = 3 Then
    Me!IPアドレス2.SetFocus
  End If

End Sub


実行例:
3文字入力後自動的に次のコントロールにフォーカス移動しています。Enterキーなどは使っていません。
入力中 3文字入力後
| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved