計算エラーを無視するマクロ-On Error Resume Next
を示す。
■Excel-VBA 計算エラーを無視するマクロ-On Error Resume Next
Sub sample37()
Dim MR As Long
Dim j As Long
Dim T As Long
Dim H As Long
Dim I As Long
MR = Cells(Rows.Count, 1).End(xlUp).Row
TT = Range(Cells(1, 20), Cells(MR, 20))
HH = Range(Cells(1, 8), Cells(MR, 8))
II = Range(Cells(1, 9), Cells(MR, 9))
On Error Resume Next
For j = 2 To MR
H = HH(j, 1)
I = II(j, 1)
TT(j, 1) = H / I * (-1)
Next j
On Error GoTo 0
Range(Cells(1, 20), Cells(MR, 20)) = TT
End Sub
※[3.~7.] 変数宣言。※[9.] 最終行数取得。
※[11.~13.] セルの値を配列に格納。
※[15.] エラー無視して次処理に進む、をオン。
※[16.~20.] 8列目(H列)の値を9列目(I列)の値で
割って(-1)かける。
※[21.] エラー無視して次処理に進む、をオフ。
※[23.] 計算結果を20列目(T列)に格納。
■マクロ実行対象
ワークブック「部品データ_191128.xlsx」■マクロ実行結果
実行すると、0での割り算(除算)のエラーを無視して、
マクロが停止せず次処理にすすむ。
For Nextループが最終行まで計算され、
結果が20列目(T列)に格納される。
コードに「On Error Resume Next」がない場合、
エラーが出て計算途中でマクロが停止する。
■あとがき
今回はExcel VBAマクロ。計算エラーを無視するマクロ-On Error Resume Next
を示した。
マクロ処理中のエラーを無視したい場合に使う。
LibreOffice Basicで使う場合は
コードの先頭行に
「Option VBASupport 1」を記述する。
Option VBASupport 1以上。



