#203 データが数値かどうかを調べるには? VBA

テーブル上のデータ型が数値型になっている場合、テーブルやクエリー、あるいはフォームからそのフィールドにアルファベットや漢字を入力しても、Accessが自動的にデータチェックを行ってくれるので、誤ったデータがテーブルに書き込まれることはありません。

しかし、VBAでInputBox$関数を使ってデータ入力を行うような場合、あるいはテーブルと連結されていないテキストボックスにデータ入力を行うような場合には、入力後にそのデータが数値かどうかチェックしないと、その後の計算処理等でエラーを招く可能性があります。

そこで、「IsNumeric」関数を使うことによって、入力されたデータが数値かどうかを事前に調べることができます。
Dim varInputData As Variant

Beep
'データの入力
varInputData = InputBox$("数値を入力してください!")

'データが数値かどうか調べる
If IsNumeric(varInputData) Then
  '数値の場合は処理を実行する
  '(ここで何らかの演算処理などを行う)
Else
  '数値でない場合はメッセージを表示
  Beep
  MsgBox "入力されたデータは数値ではありません!", vbOKOnly + vbExclamation
End If


次の図はこのコードの実行例です。ここではわざと間違ったデータ"123456ABC"を入力してみました。
インプットボックスにデータを入力

エラーメッセージが表示される
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved