#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'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved