#540 | エラールーチン内でエラー個所を調べる方法 | VBA | |
大量のレコードを読み込みながら処理するような場面では、その途中のどこかでエラーが発生することは分かっていても、その時点までステップ実行するのは困難な場合があります。たとえば1万件のレコードを読み込むループで、もしかしたら1万件目にそのエラーが発生しているかもしれないからです。 また、エラールーチンが書かれていないプログラムであればそのエラー個所でプログラムが停止しますので位置を確認するのは簡単ですが、エラー処理(On Error GoTo *****)が組み込まれている場合、ある意味想定された動きをしますので、そのエラールーチン内のプログラムによっては何のエラーメッセージもなくプロシージャを終了してしまうかもしれません。 そのようなとき、一時的に次のような2つの記述を付け加えることで、エラー個所を調べることができます。 On Error GoTo Err_Handler Set dbs = CurrentDb Set rst = dbs.OpenRecordset("tbl売上") With rst Do Until .EOF 〜〜 ここで1レコードごとの何らかの処理 〜〜 .MoveNext Loop .Close End With Exit_Here: Exit Sub Err_Handler: Stop ← 一時的にこれを付け加える Resume ← 一時的にこれを付け加える Resume Exit_Here: このようなプログラムを実行した場合、次のような挙動および操作をすることで、エラー個所を突き止めることができます。
※デバッグが完了したら、上記の2つのステートメントは削除もしくはコメントアウトしておきます。 |
|||
|
Copyright © T'sWare All rights reserved |