• ベストアンサー

テキストボックスに既定の入力しかできないようにするには。

ACCESSで郵便番号を入力するテキストボックスを作成したのですが・・・全角数値しか入力出来ないようにするにはどのようにすれば良いのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1416)
回答No.2

入力モードの切替や制限を設けても、コピペされるとお手上げです。 よって、登録時チェックとして、該当フィールドに全角数字以外が 入力されていたらエラーにするなどの方法を取るしかないでしょう。 チェック例 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)

noname#140971
noname#140971
回答No.3

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は全角に置換されます。

noname#140971
noname#140971
回答No.1

全角英数に入力を制限するスベはありません。 ですから、攻め方を変えるしかないと思いますよ。 例えば、半角0~9に入力を制限しテキストボックスが受け取る前に全角に変換するなど・・・。