#199 〒入力後に自動的に住所の最後にカーソルを移動させるには? フォーム、VBA

フォームのテキストボックスには"住所入力支援"というプロパティがあり、これを利用すれば、7桁の郵便番号を入力することによって、自動的にそれに対応した住所を別のテキストボックスに入力させることができます。しかし、もちろん番地までは自動入力してくれませんので、それはユーザーが追加入力する必要があります。

その際、不便に感じるのが、郵便番号を入力後、住所のテキストボックスにフォーカスを移動すると、自動入力されたすべての文字列が反転状態で選択された状態になっているという点です。そのまま番地のキー入力を開始すると、せっかく自動入力された住所が上書きされてしまいます。
住所がすべて反転選択されている


そこでここでは、その対応策として、郵便番号を入力すると自動的に住所のテキストボックスにフォーカスが移動し、かつ都道府県・市町村名の次にカーソルが移動し、直ちに番地入力が可能な状態にするというテクニックを紹介します。

それには、郵便番号テキストボックスの"AfterUpdate/更新後処理"イベントプロシージャに、次のようなコードを記述します。
Private Sub 郵便番号_AfterUpdate()

  With Me!住所
    '住所にフォーカスを移動
    .SetFocus
    'カーソルを最後に移動
    .SelStart = Len(.Value)
  End With

End Sub

このフォームを開き、郵便番号を入力してEnterキーを押すと、フォーカスならびにカーソルは次の図のようになり、直ちに番地入力可能な状態になります。
カーソルが最後にある
| Index | Prev | Next |



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