Access VBAでテキストボックスの整数しか入力できなくする方法【解説します】
今回は僕がエンジニアになって研修中に渡された
課題の一つAccessVBAでのシステム開発でつまずいた、
テキストボックスの中に数字(整数)しか入力できなくする方法について解説していきます。
ちなみに一般的にテキストボックスの入力を整数のみに帰省する方法はこちらのコードが使われることが多いのではないでしょうか。
Private Sub テキストボックス名_KeyPress(KeyAscii As Integer)
If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8 Then
KeyAscii = 0
End If
End Sub
キーボードが押されたときに0~9の整数しか入力できなくする方法です。
この方法で大体の場合はいけるんですけど、コピー&ペーストで-1とかをペーストされてしまうとそのまま通っちゃうので、もう少し厳しいチェックが必要なシステムだとこれだけでは使えません。
そこで今回は上記のコードに加えてこんなコードも追加してみました。
Private Sub テキストボックス名_Change()
Me!テキストボックス名.Text = Replace(Replace(Replace(Me!テキストボックス名, "-", ""), "+", ""), "\", "")
End Sub
追加でこのコードを追加しておくことでテキストボックスの内容が変更されたときにReplaceを使って+、-、\←半角¥マークを空白に置き換えて代入しなおしています。
これによってコピペされた中に上記の記号が入っていた場合空白に置き換えてくれます。
同じようにReplaceを使って半角スペースと全角スペースも空白に置き換えるともっとエラーが少なくなりますよ!!