Microsoft Access Club >VBA物語 >このページ >次頁 < 前項  サイト内検索


エラー処理 : VBA物語06



エラー処理、この言葉が持つ意味は、Accessに取り組んでおられる方々に大きな重石となっています。
VBAの理解と上達が進めば進むほど、エラー処理も複雑になってきます。 また、エラー処理との格闘も増加していきます。

エラー処理とは

エラー処理とは、ユーザーが誤った、または間発者の予期していない操作を行った場合に、軟着陸させる一連の記述 のことです。

例えば何気なく、下記のようなプログラミングを記述したと仮定しましょう。このプロシージャを実行すると必ずエラーが発生します。 なぜか判りますか?

Function SamplePro()

    Dim a As Integer 'データ型は整数型(Integer)です
    Dim b As Integer
    Dim c As Integer

    a = 12345
    b = 10
    c = a * b

End Function
解説

このプロシージャ内にエラー処理を記述していないので、Accessが用意した下記のエラーメッセージが表示され 、エラー発生箇所からプロシージャの実行が停止します。

誤った実行を行ってしまうのではなく、エラーが発生するとプロシージャの実行が停止してしまうのです。このことからも、エラー処理の記述が重要になってきます。

エラー メッセージ

Accessが用意しているエラーメッセージには、一般的にエラー番号とエラー内容が表示されます。そして、次の動作に移行するために各種コマンドボタン も用意されています。

各種のコマンドボタン
終了ボタン

プロシージャを終了する場合は、[終了]ボタンをクリックします。

デバックボタン

クリックすれば、VBAのエディター画面が表示され、プロシージャ内でエラーが発生した箇所が黄色で塗りつぶされます。

  • デバックは、システム開発中の場合は重宝ものなんですが、出来上がったシステムで、 第三者が使用している時は決して表示させてはいけないものです。
    「あぁ、間違っちゃった…」程度のソフト作成であれば、 Access組み込みのエラー処理で充分ですが、このサイトをご覧の方々はそうじゃないでしょう?
ヘルプボタン

エラー内容を確認したいときは、ヘルプボタンをクリックします。

エラー処理の組み込み

では、エラー処理をプロシージャに組み込みます。記述は以下のようになります。

エラー処理とは、一口で言 うと、「エラーが発生すると同時に、エラーの時だけに処理をさせる命令文を記述しておくこと」です。いわゆる条件節です。それには定められたルールがあります。例えば、On Error GoTo ・・・・・・の位置が問題になり場合があります。

正しい記述

間違った記述

エラー処理の発生箇所

エラー処理の記述では、エラー処理の発生箇所の起点を定めるのが重要です。

正しい記述では、a=b*cの場所でデータ定義エラーがAccess内部に発生します。発生したときに、On Error Go To …を宣言したステートメントより下にあれば、エラー処理ルーチンの適用範囲となります。以前に、VBAは上の行から実行が始まる、とお話しましたでしょう?正に実例ですね。

間違った記述では、a=b*cの場所でデータ定義エラーがAccess内部に発生します。しかし、発生した場所が、On Error Go To …を宣言したステートメントより上にありますから、エラー処理の適用範囲外となってしまいます。このようになると、Access独自のエラーメッセージ(下記の図)が表示されますので、 プロシージャの進行は中断してしまいます。

このようなことを避ける意味からも、できるだけ早く(上位に)エラー処理の宣言(On Error Go To …)を記述して下さい。なお、On Error Go To …の…部分には、お好きな文字を当てはめることができます。

このエラー処理については、次回も詳しくお知らせする予定です。では…。

2001/09/20

ページの先頭へ 前ページへ戻る


エラー処理 : VBA物語06


 

-Microsoft Access Club-