未経験エンジニアの挑戦‐FUKUPRO-

学歴なし、経験なし完全未経験からエンジニアへの転職に成功!!フリーランスを目指し日々奮闘中!!

Access VBAでテキストボックスの整数しか入力できなくする方法【解説します】

f:id:kawateru:20200210231941j:plain

今回は僕がエンジニアになって研修中に渡された

課題の一つ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を使って半角スペースと全角スペースも空白に置き換えるともっとエラーが少なくなりますよ!!