- ベストアンサー
テキストボックスに既定の入力しかできないようにするには。
ACCESSで郵便番号を入力するテキストボックスを作成したのですが・・・全角数値しか入力出来ないようにするにはどのようにすれば良いのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
入力モードの切替や制限を設けても、コピペされるとお手上げです。 よって、登録時チェックとして、該当フィールドに全角数字以外が 入力されていたらエラーにするなどの方法を取るしかないでしょう。 チェック例 Function 郵便番号チェック(テキスト As TextBox) As Boolean 郵便番号チェック = True '正常終了の戻り値を設定しておく Dim 文字列 文字列 = テキスト.Value If IsNull(文字列) Then Exit Function '未入力を許可 If IsEmpty(文字列) Then Exit Function '未入力を許可 Dim 正規表現 Set 正規表現 = CreateObject("VBScript.RegExp") 正規表現.Global = True 正規表現.Pattern = "[^0-9]" If 正規表現.Test(文字列) Then MsgBox "全角数字以外の文字があります", vbCritical, "エラー" テキスト.SetFocus 郵便番号チェック = False '戻り値にエラーを設定 End If End Function
その他の回答 (2)
ZipCode.書式=@@@-@@@@ ZipCode.入力モード=使用不可 ZipCode.変換モード=無変換 Private Sub Form_Load() Me.KeyPreview = True End Sub Private Sub Form_KeyPress(KeyAscii As Integer) With Screen.ActiveControl If .ControlName = "ZipCode" Then If KeyAscii >= 48 And KeyAscii <= 58 Then KeyAscii = KeyAscii - 48 - 240 Else KeyAscii = 0 End If End If End With End Sub これで、テキストボックス[ZipCode]に入力された半角の0~9は全角に置換されます。
全角英数に入力を制限するスベはありません。 ですから、攻め方を変えるしかないと思いますよ。 例えば、半角0~9に入力を制限しテキストボックスが受け取る前に全角に変換するなど・・・。