アクセス上位ページ
 
最近の更新内容
(5)-h.End ステートメント ⇐ [PREV]
[NEXT] ⇒ (6).セル・レンジ

Excel VBA ≫ 1.基礎編 - 制御構文(5)-i.On Error ステートメント

On Error ステートメント

通常マクロ実行中に致命的なエラーが発生すると、エラー発生個所でマクロの実行が中断してしまいます。 ある程度エラーの発生が予測できるような場合はそのエラーを適切に処理して処理を継続させたいことがあります。 このようなときにOn Errorステートメントを使用して、エラー発生時の処理をコントロールします。

【構文】
On Error GoTo [ラベル名]

通常の処理

Exit Sub または Exit Function
[ラベル名]:
エラー処理




プロシージャ内で発生するエラーをすべて無視して処理を継続したい場合はプロシージャの先頭に以下のステートメントを記述します。
On Error Resume Next

<サイト内関連リンク> 関連リンクもチェック!!
- "On Error Resume Next"の使用例

次のマクロはエラーを強制的に発生させて、そのエラーbニエラー内容をイミディエイトウィンドウへ表示し、処理を継続する例です。
Sub sample5_13()
    'エラーが発生した場合、ラベルErrProcへ処理を移します。
    On Error GoTo ErrProc

    Err.Raise 3          'エラーを強制的に発生させます。
    Err.Raise 5          'エラーを強制的に発生させます。

    MsgBox "処理が終了しました。", vbInformation

Exit Sub    '以下のエラー処理が実行されないようにプロシージャを抜けます。

ErrProc:
    Debug.Print "### エラー発生!! ###"
    Debug.Print " エラーNo  -> " & Err.Number
    Debug.Print " エラー内容 -> " & Err.Description
    Err.Clear       '必要に応じてエラー内容をクリアします。
    Resume Next     'エラーの発生した次の行から処理を継続します。
End Sub
⇒ サンプルマクロ集 へ
<実行結果(イミディエイトウィンドウ)>
### エラー発生!! ###
 エラーNo  -> 3
 エラー内容 -> Return に対応する GoSub がありません。
### エラー発生!! ###
 エラーNo  -> 5
 エラー内容 -> プロシージャの呼び出し、または引数が不正です。

<sample5_13の実行結果>
エラーが発生しても処理を継続しているので、終了メッセージが表示されます。
sample5_13の実行結果
カテゴリ内ページ



Page
Top