【Excel VBA入門】マクロのエラー|デバッグ

記述編

デバッグ」という言葉をきいたことがありますか?

デバッグ」の英単語は「debug」です。日本語とおなじですが、プログラミングでの意味は「誤りをさがして直すと解釈いただければ大丈夫です。

今回はVBAでのデバッグ」について具体的にご説明をいたします

わたしはマクロを学習するまでは聞いたこともありませんでしたが、実際にマクロをつくっているときに頻繁に目にすることになりました。

デバッグはどんな場面でてるの?

デバッグはコードを記述しているときや、マクロを実行しているときに発生することがあります。

コードが正しく記述されていないときに「コードの書き方に間違いがありますよ」といったことをパソコン側が教えてくれます。

いっぽうで、コードが正しく記述されていてもマクロの内容に誤りがあるときもあります。

そういった場合は、マクロの実行中に「マクロの内容が正しくありませんよ」と教えてくれます。

エラーの種類はおおきくわけて2種類ある。

  • コードの記述が間違っているときに発生
  • マクロの内容が間違っているときに発生

エラーの種類

エラーの内容について具体的にみていきましょう。

エラーの種類発生時期
コンパイルエラーコードの記述が間違っているときに発生
実行時エラーマクロの内容が間違っているときに発生

例をもとにご説明をいたします。

コンパイルエラー

こちらもコードの書き間違えがあったときに発生します。

記述したコードの内容をコンピューターがうまく理解できないときに発生します。いわゆる「文法のエラー」のことだとご理解いただければ良いかと思います。

たとえば、「If ~ Then」の「Then」を書き忘れた場合です。

こちらは、「セルA1を選択する」を「Range (‘A1’ ).select」と記述したときです。

記号が間違えていますね。正しくは「’(シングルクォーテーション)」ではなく「”(ダブルクォーテーション)」をつかって記述する必要があります。

実行時エラー

コードは正しい文法で記述されていますが、マクロの内容に誤りがある場合に発生します。

たとえば、5枚目のワークシートが存在しないにもかかわらず、それを指定していた場合です。

デバッグの方法

「コンパイルエラー」の場合は、ダイアログボックスに修正候補が案内されますので、それを参考にコードを書き直す必要があります。

いっぽうで「実行時エラー」の場合は、次の手順でコード修正をすすめます。

このようなエラー画面がでてきますので「デバッグ」をクリックします。

エラーの原因となっているコードが「黄色」でマーキングされます。

この「黄色」でマーキングされた箇所にエラーが含まれていますので、ここのコードを修正をします。

エラーが複数ある場合でも一番上のコードにだけ色が付きます。

まとめ

「デバッグ」についてご理解いただけましたでしょうか?

ある程度コードの記述に慣れてきても、なかなかエラーなしにはコードは書けないものです。人間ですからどうしてもうっかりミスをしてしまうものです。

最初はエラーばかりでなかなか前に進めないことが多くあると思いますが、エラーは貴重な知らせです。ひとつずつ解決していけば、いつの間にかVBAのスキルが身に付いているはずです。