← コード一覧へ戻る
実務エラー対策

エラーが起きた場所を表示する

ファイルを開く処理でエラーが起きた場合、処理名・行番号・エラー番号・内容を表示します。

実行前に確認

  • Erlは付けてある行番号を返します。行番号のない行では厳密な発生行を特定できません。
  • エラーを表示するだけで原因の修復や再実行は行いません。

1サンプルコード

Sub エラーが起きた場所を表示する()
    Dim stage As String
    On Error GoTo ErrorHandler
10  stage = "売上.xlsxを開く"
20  Workbooks.Open Filename:="C:\Data\売上.xlsx", UpdateLinks:=0, ReadOnly:=True
    Exit Sub
ErrorHandler:
    MsgBox "処理: " & stage & vbCrLf & "行番号: " & Erl & vbCrLf & _
           "エラー番号: " & Err.Number & vbCrLf & Err.Description
End Sub

図で見る操作の流れ

イメージ図

コードに沿った概念図です。実際の画面や実行結果ではありません。

  1. マクロ:処理名を記録

    行番号10で「売上.xlsxを開く」をstageに入れる

  2. マクロ:開く処理

    行番号20でC:\Data\売上.xlsxをリンク更新なし・読み取り専用で開く

  3. 結果の分岐

    成功→開いたまま終了。失敗→処理名・行番号・エラー番号・内容を表示

行番号20で失敗した例ではErlは20。エラーの原因修復や再実行は行いません。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。

  2. 2

    コードのC:\Data\売上.xlsxを、信頼できる練習用.xlsxのパスへ変えます。存在しないパスにすると、エラー時の表示を試せます。

  3. 3

    実行するSubの内側にカーソルを置き、F5キーを押します。

  4. 4

    失敗すると処理名「売上.xlsxを開く」・行番号20・エラー番号・内容が表示されます。成功するとブックを読み取り専用で開いたままにします。

使っている機能の公式ドキュメント(Microsoft Learn)