ワードマクロ:エラー発生で実行停止せずエラー処理をさせる方法

シェアする

ワードマクロで、ドキュメントの状態・ファイル形式の違いにより、同じメソッドでも使用できないことがあります。

そんな時場合によっては、エラーを無視してもよい場合もあるでしょう。あるいは、独自のエラー処理を書いたり、ブレイクポイントをって解析することもできます。

そこで、ワードマクロでエラー処理を独自に行う方法を紹介します。

※実案件作業中のため、まずはメモ用に時短で書いております。

ワードマクロ:エラー発生で実行停止せずエラー処理をさせる方法

エラー処理の変更には、On Error 命令を使います。

On Error Goto  と、 On Error Resume Next の2つを覚えておけばよいでしょう。

On Error Gotoを使う場合

エラー発生時には、ErrHandlerラベルへ処理を移動します。そのためエラーが発生した命令のあとの命令は実行されません。

使用例は下リストの通りです。

下図は実行結果です。処理分岐しているため、2度目のエラーは発生してません。

On Error Resume Next を使う場合

エラー発生時は、実行停止せず、次の命令を実行します。
この時、処理に不整合が出てこないように、必要に応じてエラー発生時の処理を行ってください。

エラーが発生したかどうかを調べるには、 Err オブジェクトの Number 変数を参照します。0以外ならエラーが発生しています。下に使用例を載せます。

Errオブジェクトで発生を調べた後、Err.Clearメソッドでエラー情報をクリアしています。

また、想定外のエラーでは実行停止させるため、エラー発生が予期できる場所以外では、  On Error Goto 0  で実行停止するようにしてください。

下図が実行結果です。いったんDebug.Printでエラー表示したあと、もう一度エラー発生し、実行停止しています。

2回目のエラー発生では、通常動作に戻した後なので、通常のエラーウィンドウが表示されました。

まとめ

マイクロソフトのオフィスのマクロ(VBA)では、On Error 命令を使ってエラー処理をカスタマイズすることができます。

On Error Goto ラベル  を使うと処理を分岐(移動)させることができ、 On Error Resume Nextを使えばエラー発生時に次の命令に実行が続きます。

いずれの場合も、エラー発生が想定できる場所でのみ使うようにして、 On Error Goto 0 を実行して通常のエラー処理(実行停止)するように戻してください。

この記事が気に入ったら
いいね ! しよう