エラーの種類
プログラムを書いて1回で完成させることはほとんどまれで、さまざまなエラーが出てきてそれらに対処しながら完成させていきます。
ではエラーと呼ばれるものにはどのようなものがあるのでしょうか。
大きく分けて3つあります。それらを解決しながら作品(プログラム)を完成させます。
- 構文エラー
- 実行時エラー
- 論理エラー(最後まで実行はしたが結果がまちがっている)
今回は、1.文法エラーと2.実行時エラーに対しての対応について説明します。
3.論理エラーは「エラー処理2」で説明します。
1. 構文エラー
構文エラーはシンタックスエラー、文法エラーなどと呼ばれています。
具体的に言えば、半角文字で書くところを全角文字で書いたり、命令語のつづりをミスするなどコンピューターが命令を解釈できない場合です。ということはプログラムは実行できません。
構文をチェックする方法
- 1. VBEでは自動構文チェックが働いていますのである程度大きな入力ミスを指摘してくれます。エラーメッセージが表示されますので正しい文に直してください。
- 2. 次に構文チェックそして実行するには、プロシジャー内にカーソルを置き、F5 キー(実行)を押します。
- 3. エラーがある場合は、最初に見つかったエラー箇所でメッセージが表示され、かつ青色で選択されています。
- 4. 左矢印キーでカーソルを移動させて正しい文に修正します。
- 5. プロシジャーがエラー状態なのでそれを正常な状態に戻すために、アクセスキー: Alt R R(「実行」メニューのリセット」)でリセットします。
- 6. 次に再度F5 キー(実行)を繰り返します。1.〜5.の処理を繰り返し、何もエラーメッセージがなくなったら構文チェックは完了です。
【ワンポイント】 構文チェックは、VBE内のツールバーの「デバッグ」から「VBA Projectのコンパイル」でできます。それを利用すると、プロジェクト全体のプログラムに対して行なわれます。今後のことを考えると構文チェックを含んだ「実行」で利用しましょう。
実際に下のプログラムを標準モジュールシートに入力してみてください。エラーを見つけて修正・実行して「エラーを修正しました。」のメッセージが表示されましたか。
- Sub サンプル03()
- Dim x As ynteger 'データ型Integerのつづりミス
- MsgBox "エラーを修正しました。"
- End Sub
2. 実行時エラー
実行時エラーは、プログラム実行時に何らかのエラーが発生した場合、その場所でエラーメッセージを表示して強制的に終了します。
実行時エラーを解消する方法
- 1. 実行時エラーメッセージが表示されますので「デバッグ」ボタンを選択してください。
- 2. エラー行の背景色が黄色に変わります。
- 3. 左方向 キーでカーソルを移動させて正しい文に修正します。
(その箇所でなく別の箇所でおきたのがそこに影響している可能性もあります) - 4. プロシジャーがエラー状態なので、それをアクセスキー: Alt R R(「実行」メニューのリセット」)でリセットします。
- 5. 次に再度F5(実行)を繰り返します。何もエラーメッセージがなくなったら結果が楽しみです。
- Sub エラーサンプル04()
- Dim x As Integer
- Dim y As Integer
- Dim z As Single
- x = 10: y = 10
- z = x / (x - y) * 100
- MsgBox "比率は" & z & "%です"
- End Sub
このエラーは演算処理で0で割ったためにエラーが起きましたので、どこかにエラーがあるので修正してください。修正箇所は、変数xとyの値をかえるか演算処理を「x+y」にします。「比率が50%です。」と読み上げたら成功です。正解は数式「x-y」が「x+y」に変更します。
エラーメッセージ
エラーコード | エラーメッセージ |
---|---|
6 | オーバーフローしました。 |
7 | メモリが不足しています。 |
9 | インデックスが有効範囲にありません。 |
11 | 0 で除算しました。 |
13 | 型が一致しません。 |
14 | 文字列領域が不足しています。 |
17 | 要求された操作は実行できません。 |
51 | 内部エラーです。 |
58 | 既に同名のファイルが存在しています。 |
【ワンポイント】 エラー一覧は、マイクロソフトのVisual Basic for Applications でのエラー トラップに詳しく書いてあります。