#611 計算値がエラーがどうか調べるには? VBA

VBAのプログラムにおいては、通常、エラーが発生するとプログラムが停止するか、あらかじめ発生が予期されているようなときにはエラー処理ルーチンでトラップするなどの対処方法があります。

これに対して、計算式におけるエラー、たとえばゼロで除算したときに発生するようなエラーについては、その式自体を事前に評価することができます。エラーが発生する式かどうかを判別し、そのあとの処理を分岐したりエラー回避させたりすることができます。

それには、「IsError」関数を使います。この関数では、引数に指定した値や計算式がエラーを発生させるような内容の場合にはTrueを返します。そうでない場合はFalseを返します。


次の例では、100を「txt入力データ」テキストボックスに入力された値で割り算しています。その結果が問題なければ計算結果を「txt処理結果」テキストボックスに出力します。エラーが発生する内容である場合には”計算エラーです!”と出力します。

Private Sub txt入力データ_AfterUpdate()
'入力データの更新後処理

  'エラーを無視する
  On Error Resume Next

  '計算値がエラーか調べる
  If IsError(100 / Me!txt入力データ) Then
    Me!txt処理結果 = "計算エラーです!"
  Else
    Me!txt処理結果 = 100 / Me!txt入力データ
  End If

End Sub


実行例:
■入力データに「20」を入力した場合
入力データに20を入力した場合
■入力データに「0」を入力した場合
入力データに0を入力した場合
| Index | Prev | Next |



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