エラーが起きた場所を表示する
ファイルを開く処理でエラーが起きた場合、処理名・行番号・エラー番号・内容を表示します。
実行前に確認
- 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図で見る操作の流れ
イメージ図コードに沿った概念図です。実際の画面や実行結果ではありません。
マクロ:処理名を記録
行番号10で「売上.xlsxを開く」をstageに入れる
マクロ:開く処理
行番号20でC:\Data\売上.xlsxをリンク更新なし・読み取り専用で開く
結果の分岐
成功→開いたまま終了。失敗→処理名・行番号・エラー番号・内容を表示
行番号20で失敗した例ではErlは20。エラーの原因修復や再実行は行いません。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。
- 2
コードのC:\Data\売上.xlsxを、信頼できる練習用.xlsxのパスへ変えます。存在しないパスにすると、エラー時の表示を試せます。
- 3
実行するSubの内側にカーソルを置き、F5キーを押します。
- 4
失敗すると処理名「売上.xlsxを開く」・行番号20・エラー番号・内容が表示されます。成功するとブックを読み取り専用で開いたままにします。