Edited at

備忘録:Excel VBAでセルのエラー値処理


Excelのセルのエラー値を空白にしたい


現状

G列やR列などのセルのエラー値 #DIV/0!#VALUE!を空白にしたい。

20190223a.PNG


解決策

セルの中身がエラー値かどうか確認する関数IsError使う。エラー値ならば、Trueを返す。

セルの中身がエラー値ならば、Cells(y, x) = ""で中身を空白にする。

If IsError(Cells(y, x)) Then

Cells(y, x) = ""
End If


コードサンプル

2003~2016年の14年間、344社分のデータを整理する。

Sub エラー値を空白に()

Dim a, x, y

a = 2003 'B列の年
x = 7 '列
y = 5 '行

Do While x <= 346
Do While a <= 2016
Do While a = Cells(y, 2)
If IsError(Cells(y, x)) Then
Cells(y, x) = ""
End If
y = y + 1
Loop
a = a + 1
Loop
a = 2003
x = x + 1
y = 5
Loop
End Sub


結果

エラー値が空白に変換された。

20190223b.PNG