計算エラーを無視するマクロ-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以上。