透2017/10/102019/4/21エラー処理って使っていますか?エラー処理といえば、0(ゼロ)で割る処理を行うとエラーが発生します。ファイルへの入出力の際に不適切なパスを指定した場合などもエラーが発生します。エラーが発生すると処理が停止して、それ以降の処理が行われないなど不具合の原因となります。ならないためには、エラー処理を行います。Errorを複数回使用する場合エラー処理をサブルーチンにまとめる方法など基本的な内容から、応用的な内容についても解説していきます。まとめエラー処理とはエラー処理とは、プログラムが何かしらの原因で処理が行えなかったり、意図しない処理を行う場合に、不具合を最小限に抑えるための処理です。エラー処理には、大きく分けて2つの考え方があります。データが壊れることやなくなることがないように、安全を第一に考え処理を中断し、その後の処理を行わない。間違いが起こっても他の処理に影響しないようにする。VBAではエラー処理を具体的にどのように記述するのか、くわしくみていきましょう。Errorステートメントを使います。Errorステートメントを記述することで、エラー処理を有効にし、エラー発生時の処理を指定することができます。Errorステートメントのあとに記述します。Nextを使ってエラーの発生した次の行から処理を続ける方法などがあります。GoToで処理をスキップする方法GoToステートメントを使うことで、次の処理を指定することができます。ラベル先にエラー処理を記述し、そこへ処理をスキップします。ラベル先の処理にスキップするには以下のように記述します。Subラベル名:(エラー発生時の処理)サンプルコードで確認しましょう。Sub実行結果:このサンプルコードでは、ゼロでの割り算でエラーが発生します。エラーが発生すると、ラベル先に処理がスキップしています。GoToステートメントの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。2019年4月19日Resumeで処理を続ける方法Resumeステートメントを使うと、処理を継続することができます。Resumeと記述すると発生した行に戻って継続します。Nextと記述すると次の行から継続することができます。サンプルコードで確認しましょう。Sub実行結果:このサンプルコードでは、ゼロでの割り算でエラーが発生します。エラーが発生すると、ラベル先に処理がスキップしています。Nextステートメントでエラー発生箇所の次の行から処理を行っています。Nextステートメントを使って処理を継続する必要があります。サンプルコードで確認しましょう。Sub実行結果:このサンプルコードは、2での割り算の余り、つまり0もしくは1で割り算を行っています。余りが0の場合はゼロでの割り算となり、エラーが発生します。Nextステートメントで次の処理から継続するようにしています。Nextを抜かしてしまうと、Excelが応答しなくなることもありますので注意しましょう。メッセージを取得する方法エラーが発生した場合、エラーコードの番号やエラー内容を確認してその後の対応を決めることがよくあります。そのためにはエラーメッセージを取得して出力する必要があります。エラーメッセージはErrオブジェクトのプロパティから取得します。使い方をサンプルコードで確認しましょう。Sub実行結果:このサンプルコードでは、ErrオブジェクトのSource、Number、Descriptionプロパティを使ってエラーメッセージを表示しています。ちなみに、主なエラー番号について以下の表にまとめました。Returnに対応するGoSubがありません。プロシージャの呼び出し、または引数が不正です。オーバーフローしました。メモリが不足しています。インデックスが有効範囲にありません。この配列は固定されているか、または一時的にロックされています。