MS-Access のテキストボックスをフォーカス取得時に非選択状態にしたい MS-Access のテキストボックスは、フォーカスが移動してきた時に 文字列が選択状態になるが、郵便番号から引き続き住所入力するときなど 文字列が選択されてしまうとカーソルキーやF2等のワンアクション無駄な動きがある 通常は、フォーカス取得時にテキストボックスの長さを調べて SelStart値を指定すればいいが、テキストボックスがいくつもあると 毎回書くのは面倒なので、関数を作成しソレをマクロに登録して、 イベントのリストボックスから選択するだけで利用できるようにしてみる 1. モジュールに下記の関数を作成する Function NoSelected() As Boolean On Error Resume Next If UCase(TypeName(Screen.ActiveForm.ActiveControl)) = "TEXTBOX" Then If (Len(Screen.ActiveForm.ActiveControl) > 0) Then Screen.ActiveForm.ActiveControl.SelStart = Len(Screen.ActiveForm.ActiveControl) End If End If Resume End Function 2. 下記のマクロを作成する マクロ名: M_NoSelected アクション: プロシージャの実行 プロシージャ名: NoSelected() 3. 利用したいテキストボックスの「フォーカス取得時」イベントの プルダウンメニューからマクロ「M_NoSelected」を選択する ※いくつも利用する場合は、3のみを繰り返す