コンピュータでは、いかなるプログラミング言語、あるいは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
|