CELF、RPA、エクセルによる業務改善記録

CELF、RPA、エクセルをより多くの方に便利に使っていただきたい!!

エクセルマクロVBA エラー処理(エラーの種類)

作成したプログラムに不備がある場合、プログラムは正常に動作せず。エラーを表示して止まってしまったり、思うような結果が得られなかったりします。

このようなミスは「バグ」と呼ばれ、バグを取り除く作業を「デバッグ」といいます。

また、エラーが表示されたときに、しかるべき処理を行い、処理が途中でストップしないように、あらかじめエラー処理をしておくことで、正しく動作させることができます。

 

「エクセルマクロVBA エラー処理(エラーの種類)」

 

1.エラーの種類

 

エラーには、「コンパイルエラー」「実行時エラー」「論理エラー」の3種類があります。

コンパイルエラー」と「実行時エラー」の原因はコーディングミスといって、コードの記述を間違うことによって起こることが多いので、デバッグが比較的簡単ですが、「論理エラー」の場合はツールを使ってデバッグ作業を行います。

 

(1)コンパイルエラー

 

コンパイラは、VBAで記述したプログラムを機械語に変換するソフトウェアで変換できないコードが記述されていると、コンパイルエラーが表示されます。

例えば、スペルミスで存在しないキーワードを入力したり、文法上の誤りがあったりしたときに表示されます。

コンパイルエラーはコード実行中に表示されたり、Visual Basic Editor(以下、VBE)ではコードの記述中にも表示されます。

 

f:id:miulovininy:20200424085003p:plain

コンパイルエラー

 

(2)実行時エラー

 

実行時エラーは、プログラム実行中に実行不可能な処理を行おうとすると発生するエラーです。

たとえば、数値しか代入できない変換に文字を代入しようとしたり、0で除算する処理を行おうとすると表示されます。

 

f:id:miulovininy:20200424085250p:plain

実行時エラー

 

(3)論理エラー

 

論理エラーとは、プログラムの構文が正しいにも関わらず、作成者の期待した結果とは異なるエラーです。

アルゴリズムと呼ばれる、正しい答えを得るための処理が間違っていると発生します。

たとえば、終了条件を間違えたり、変数名が重複したり、変数を初期化せずに使用したりすると発生します。

また、延々と処理を繰り返し、プログラムが終了しない無限ループが起こったときは、CtrlキーとBreakキーで処理を一時中断することができます。