MS-Access のテキストボックスをフォーカス取得時に非選択
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のみを繰り返す
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のみを繰り返す
コメント