Vba で iferror を使用する方法 (例あり)
Excel の数式でエラーが発生した場合、次の基本構文を使用して VBA でIFERROR関数を使用し、セルに特定の値を表示できます。
SubIfError ()
Dim i As Integer
For i = 2 To 11
Cells(i, 4).Value = WorksheetFunction.IfError(Cells(i, 3).Value, " Formula Error ")
Next i
End Sub
この特定の例では、現在のシートの 3 列目の行 2 ~ 11 の各セルにエラー値があるかどうかをチェックします。
エラー値が発生した場合は、「数式エラー」値が 4 列目の対応するセルに割り当てられ、それ以外の場合は、3 列目の数値が 4 列目の対応する値に割り当てられます。
次の例は、この構文を実際に使用する方法を示しています。
例: VBA で IFERROR を使用する方法
さまざまな店舗にわたる商品の総収益と販売個数を示す次のデータ セットが Excel にあるとします。
列 C では、式を使用して収益を販売単位で除算し、単位あたりの収益を取得します。
ただし、この式では#DIV/0!という値が生成されることに注意してください。一部のセルではゼロで除算しようとします。
これらのセルに「数式エラー」を表示する新しい列を作成するとします。
これを行うには、次のマクロを作成できます。
SubIfError ()
Dim i As Integer
For i = 2 To 11
Cells(i, 4).Value = WorksheetFunction.IfError(Cells(i, 3).Value, " Formula Error ")
Next i
End Sub
このマクロを実行すると、次の出力が表示されます。
D 列の値には、C 列の数式の結果、またはエラー値が表示される場合は「数式エラー」値が表示されます。
コード内のIfErrorメソッドの「Formula Error」を自由に変更して、エラーが発生したときに必要な値を代わりに表示してください。
注: VBA IfErrorメソッドの完全なドキュメントはここにあります。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: IF OR を使用して複数の条件をテストする方法
VBA: IF AND を使用して複数の条件をテストする方法
VBA: IF NOT を使用して条件が満たされていないかどうかをテストする方法