目次
DIV/0!エラーが発生する条件や原因
DIV/0!エラーは、ExcelやVBAなどのプログラムで数式を計算する際に発生するエラーの一種です。このエラーは、数式の結果がゼロで割り算が行われた場合に発生します。
具体的には、以下のような状況でDIV/0!エラーが発生します:
1.セル内の数式で、ゼロで割り算が行われた場合。
例えば、A1セルに「=B1/C1」という数式が入力されている場合、もしB1セルやC1セルの値がゼロであれば、DIV/0!エラーが発生します。
2.VBAのコードで、ゼロで割り算が行われた場
VBAのプログラムで数値を計算する際に、ゼロで割る操作が行われた場合にもDIV/0!エラーが発生します。例えば、次のようなコードがあったとします:
result = 10 / 0
上記のコードでは、ゼロで割り算が行われているため、DIV/0!エラーが発生します。
DIV/0!エラーの原因は、割り算の分母がゼロになることです。ゼロで割り算を行うことは数学的に定義されておらず、計算結果が不確定になるため、エラーが発生します。
DIV/0!エラーが発生すると、結果が不正確なまま表示され、他の計算に影響を与える可能性があります。このため、エラーハンドリングや適切な処理を行うことが重要です。
具体的対策
まずは単体で呼び出して使う場合
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub DIV/0!置き換え() Dim Target As Range On Error Resume Next 'A列を検索 Set Target = Range("A:A").SpecialCells(xlCellTypeFormulas, xlErrors) On Error GoTo 0 'エラーがなければ終了 If Target Is Nothing Then Exit Sub 'エラーがあれば置き換え Target.Value = "置き換え文字" End Sub |
次に他からcallして使う場合(汎用的なので処理内容知らない人でも使いやすい)
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub 関数エラー処理(ByVal range As String) Dim Target As Range On Error Resume Next Set Target = Range(range).SpecialCells(xlCellTypeFormulas, xlErrors) On Error GoTo 0 If Target Is Nothing Then Exit Sub Target.Value = "" End Sub |
引数で検索範囲を受け取って、その範囲を検索して置き換えています。
「range」に「”A:A”」を渡してあげればA列を探してくれます。
この場合関数のエラーが起こる箇所はDIV/0!に関わらず置き換えてくれます。
コメント