#200 分母がゼロのときの除算エラーを回避するには? VBA

コンピュータでは、いかなるプログラミング言語、あるいはExcelのような表計算ソフトのセル計算式においても、分母がゼロである割り算は実行できず、除算エラーとしてはじかれてしまいます。そこで、分母がゼロのときの除算エラーを回避して、答えをゼロとする方法を紹介します。


まずはIf〜Else構文を使った方法です。
ここでは分母の値を調べ、ゼロでなければ通常の割り算を実行し、ゼロの場合は答えをゼロとして表示します。
Sub DevideTest1()

  Dim a, b
  Dim Rslt

  a = InputBox$("分子を入力してください!")
  b = InputBox$("分母を入力してください!")

  If b <> 0 Then
    Rslt = a / b
  Else
    Rslt = 0
  End If

  MsgBox a & "÷" & b & "の計算結果は " & Rslt & "です!"

End Sub

続いて、エラー処理を使って除算エラーを回避する方法です。
除算エラーが発生すると、エラー番号「11」のエラーが発生します。ここではエラーをトラップし、その番号のエラーが発生したら答えをゼロにしてエラー処理を抜け出すという方法を採っています。さらにここでは、汎用的に利用できるFunctionプロシージャとしてその仕組みを作ってみました。
Function DevideZero(a, b)

  On Error GoTo Err_Handler

  DevideZero = a / b

Exit_Here:
  Exit Function

Err_Handler:
  If Err.Number = 11 Then
    DevideZero = 0
    Resume Next
  Else
    Beep
    MsgBox Err.Description
    Resume Exit_Here
  End If

End Function
| Index | Prev | Next |



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