エラーは実は「情報の宝庫」、VBAに生かす方法とは:脱初心者! 1歩先を行くExcel VBA開発者のススメ(4)(1/2 ページ)
なるべく発生してほしくない「エラー」。しかしそのエラーは、実は成長のチャンスかもしません。
書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍『ExcelVBAを実務で使い倒す技術』からの抜粋です。
ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
※編集部注:前回記事「タイプミスをゼロにするのは不可能? VBAコーディングを速めるツールとは」はこちら
エラーメッセージは情報の宝庫、エラーは成長の糧
■エラーをわざと発生させて「敵を知る」
エラーは、なるべくなら発生して欲しくないものです。
想定外に発生し、そのデバッグ作業も緊急性が高い。解決できるまでは、仕事や周囲に悪影響を与えてしまうというプレッシャーもかかります。そして多くの場合、誰も助けてくれません。自分で書いたコードの責任は、自分でとらなくてはなりません。
しかし、残念ながらどうしても発生します。だから、割り切ってうまく付き合っていくしかないのです。
さて、ここで一旦、発想を転換しましょう。
むしろ、エラーとポジティブに向き合ってみるのです。次のように考えてみてください。
Check!
- エラーメッセージは、コンピュータからの手紙である
- エラーは、成長のチャンスをくれるレアキャラである
そして、この心持ちのまま、わざとエラーを発生させてみてください。その発生のメカニズムやよくあるパターンなど、相手のことがわかるようになるでしょう。更に、その発生を抑える、または素早く解消するノウハウやテクニックが身に付きます。
デバッグを楽にするための一歩は、敵を知ることなのです。
ではここで、どのようなエラーが発生するかを想像しながら、次のプログラムを実行してみましょう。
きちんとエラーが出ましたか?
「変数の宣言を強制する」設定が完了している場合は、図1のようなエラーメッセージが出現するはずです。
このエラーメッセージは、比較的理解しやすいですね。変数「num」の宣言をしていないことが、その原因となります。
それでは次に、「Option Explicit」をコメントアウトして再度実行してみましょう。変数の宣言を強制さえしなければ、このエラーは出なくなりますからね。実行して、InputBoxに好きな数値を入力してみましょう。
エラーメッセージは出ませんが、図2のように、イミディエイトウィンドウへの出力が0になってしまうという、わかりづらいエラーが生じます。これは後述しますが、「普通にプログラムが実行されてしまうけど、望んでいた結果が出ない」という、論理エラーという種類のものです。
もうお分かりだと思いますが、変数「nu」が原因ですね。
コードがこの短さであれば原因はバレバレですが、何十行もある中からこのバグを見つけるのはなかなか困難です。
変数宣言を強制することの重要さが、よくわかるかと思います。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- さらば残業! 面倒くさいエクセル業務を楽にする「Excel VBA」とは
日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。本稿では、業務で使うことが多い「Microsoft Excel」で使えるVBAを紹介する。※ショートカットキー、アクセスキーの解説あり - Excelデータの入力不備で計算エラーが発生して家に帰れない!――入力規則よりも簡単なチェックマクロとは
1つのExcelファイルを複数人で編集する場合、想定していたのとは違う形式でデータを入力されてしまい、不備が発生する可能性も少なくない。その問題をExcel VBAで解決するにはどうすればいいのだろうか。 - 一石二鳥で時間に余裕が!――面倒くさい見積書や請求書などの書類を自動作成するマクロとは
見積書や請求書、経費精算書などのさまざまな書類をExcelで作成している人は少なくありません。その書類を手で入力したりコピー&ペーストで作成したりしていては、人為的なミスが起こり、時間がかかってしまいます。今回はVBAで書類を作成する方法を紹介します。