VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 アルゴリズム(基本)関係のメニュー
1.エラー処理実行時の基本的な設定
2.エラー処理について
3.API関数使用時のエラー情報を取得
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.


2.エラー処理について
1.On Error ステートメントについて
2.On Error ステートメントの使用例
3.Err オブジェクトのメソッド・プロパティ一覧及び使用例
4. 
5. 
6. 

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6)
Option :[Option Explicit]
参照設定:追加なし
使用 API:
なし
その他 :
    :
このページのトップへ移動します。 1.On Error ステートメントについて

On Error ステートメント
On Error GoTo line
引数 line に指定した行から始まるエラー処理ルーチンを有効にします。
引数 line は必ず指定します。
引数 line には任意の行ラベルまたは行番号を指定します。
実行時エラーが生成されると、ここで設定したエラー処理ルーチンにプログラムの制御が移り、エラー処理ルーチンがアクティブになります。
引数 line に指定する行は、On Error ステートメントと同じプロシージャ内に存在しなければなりません。
この制限に従わなければ、コンパイル時エラーが発生します。 
On Error GoTo 0 現在のプロシージャに含まれる使用可能なエラー処理ルーチンを無効にします。
On Error Resume Next 実行時エラーが発生してもプログラムを中断せず、エラーが発生したステートメントの次のステートメントから実行を継続します。
オブジェクトを操作する場合は、On Error GoTo ステートメントではなく、このステートメントを使ってください。   

Resume(エラー処理ルーチン以外の場所で Resume ステートメントを使用するとエラーが発生します。)
Resume [0] エラー処理ルーチンと同じプロシージャ内でエラーが発生した場合、エラーの原因となったステートメントからプログラムの実行が再開されます。呼び出されたプロシージャ内でエラーが発生した場合、エラー処理ルーチンを含むプロシージャが最後に呼び出したステートメントからプログラムの実行が再開されます。
Resume Next エラー処理ルーチンと同じプロシージャ内でエラーが発生した場合、エラーの原因となったステートメントの次のステートメントからプログラムの実行が再開されます。
呼び出されたプロシージャ内でエラーが発生した場合エラー処理ルーチンを含むプロシージャが最後に呼び出したステートメントの次のステートメント、またはOn Error Resume Next ステートメントからプログラムの実行が再開されます。
Resume line 引数 line に指定した行からプログラムの実行が再開されます。引数 line は必ず指定します。引数 lineには行ラベルまたは行番号を指定します。また、エラー処理ルーチンと同じプロシージャに指定する必要があります。

このページのトップへ移動します。 2.On Error ステートメントの使用例

Private Sub Command1_Click()
  On Error GoTo ErrorHandler       ' エラー処理ルーチンを行います。

  Open "TESTFILE" For Output As #1    ' 出力ファイルを開きます。
  Kill "TESTFILE"             ' 開いたファイルの削除を試みます。

  On Error GoTo 0             ' エラーのトラップを無効にします。
  On Error Resume Next          ' エラーのトラップを留保します。

  ObjectRef = GetObject("MyWord.Basic")  ' 存在しないオブジェクトの起動を試みます。
                      ' その後、オートメーションエラーの発生を調べます。

  If Err.Number = 440 Or Err.Number = 432 Then
    ' 発生したエラーの内容を表示した後、Err オブジェクトをクリアします。
    Msg = "オートメーションオブジェクトが開けません。"
    MsgBox Msg, , "Error ステートメントのテストを留保します。"
    Err.Clear              ' Err オブジェクトのプロパティをクリアします。
  End If

Exit Sub                  ' エラー処理ルーチンが実行されないように Sub を終了します。

ErrorHandler:                ' エラー処理ルーチン。
  Select Case Err.Number         ' エラー番号を評価します。
    Case 55               ' "ファイルは既に開かれています。" というエラーです。
      Close #1            ' 開いたファイルを閉じます。
    Case Else
                      ' 他のエラー処理をここに記述します。
  End Select
  Resume
End Sub

このページのトップへ移動します。 3.Err オブジェクトのメソッド・プロパティ一覧及び使用例


Err オブジェクトのメソッド・プロパティ一覧
メソッド・プロパティ名 解説及び使用例
Clear メソッド Err オブジェクトのすべてのプロパティの設定値をクリアします。
使用例:On Error ステートメントの使用例参照  
Description プロパティ エラーに関連する説明の文字列を設定します。値の取得も可能です。
 次の例は、Err オブジェクトの Description プロパティにユーザー定義のメッセージを設定します。
 使用例:Err.Description = "この操作に必要なオブジェクトにアクセスすることができませんでした。"
HelpContext プロパティ ヘルプファイルのトピックに対応するコンテキスト番号を含む文字列式を設定します。値の取得も可能です。
 使用例:次の例は、"オーバーフローしました。" エラーに対応する Visual Basic のヘルプを表示します。
  Dim Msg
  Err.Clear
  On Error Resume Next
  Err.Raise 6        ' "オーバーフローしました。" エラーを発生させます。
  If Err.Number <> 0 Then
    Msg = "ヘルプコンテキスト番号 " & Err.HelpContext & " について " & _
    Err.HelpFile & " のヘルプを参照するには、F1 キーを押してください。"
    MsgBox Msg, , "エラー : " & Err.Description, Err.HelpFile, _
    Err.HelpContext
  End If 
HelpContextID プロパティ Microsoft Windows ヘルプファイル内のトピックのコンテキスト番号を表す文字列型の値を設定します。値の取得も可能です
次の例は、HelpContextID プロパティを使用して、プロジェクトに対応するヘルプファイルのコンテキスト ID を返します。
使用例:Debug.Print Application.VBE.VBProjects(1).HelpContextID  
HelpFile プロパティ ヘルプファイルへの絶対バスを含む文字列式を設定します。値の取得も可能です。
 使用例:次の例は、ヘルプを表示します。特に指定しない限り、HelpFile プロパティには Visual Basic のヘルプファイルの名前が格納されています。
  Dim Msg
  Err.Clear
  On Error Resume Next    ' 説明のため、エラーを抑止します。
  Err.Raise 6         ' "オーバーフローしました。" エラーを発生させます。
  Msg = "このエラーに関する項目を " & Err.HelpFile & _
    " で参照するには、F1 キーを押してください。"
  MsgBox Msg, , "エラー : " & Err.Description, Err.HelpFile, Err.HelpContext
LastDLLError プロパティ 最後にダイナミックリンクライブラリ (DLL) を呼び出したときのエラーコードを返します。値の取得のみ可能です。
使用例:API 関数使用時のエラー情報を取得 を参照  
Number プロパティ エラーを指定する数値を設定します。値の取得も可能です。Number プロパティは、Err オブジェクトの既定プロパティです。値の取得のみ可能です。
使用例:On Error ステートメントの使用例参照  
Raise メソッド 実行時エラーを生成します。
使用例:HelpFile プロパティ の使用例を参照 
Source プロパティ エラーの発生元のオブジェクトまたはアプリケーションの名前を示す文字列式を設定します。値の取得も可能です。
使用例:複雑なので、MSDN の Source プロパティ の使用例をご覧ください。  


使用例:

このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





このページのトップへ移動します。