Excel-VBA 計算エラーを無視するマクロ-On Error Resume Next

2019/12/19

プログラム

t f B! P L
Excel VBAマクロ。今回は
計算エラーを無視するマクロ-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
以上。

ブログ アーカイブ

ラベル

このブログを検索

スポンサーリンク

自己紹介

機械メーカー総合職正社員10年勤務後退職。 エクセルVBAプログラム歴 5年。 LibreOffice(無料)でVBAマクロ検証。
■Fortniteクエスト攻略動画■
■Twitter■
⇒詳細プロフィールを表示

QooQ