web-dev-qa-db-ja.com

VBAコードのどの行がエラーを引き起こしているかを確認する方法

作成した長いコードをデバッグしようとしていますが、1行ずつステップ実行する必要があります。

私はMacを使用していて、その場合のF8の使用方法がわかりません。それ以外の方法でそれを行う方法と、実行で問題を引き起こしている行を知る方法を誰かに教えてもらえますか?

11
seigna

エラーが発生している行を確認するには、ERLプロパティを使用できます。以下のこのサンプルコードを参照してください。

Sub sample()
Dim i As Long

On Error GoTo Whoa

10    Debug.Print "A"
20    Debug.Print "B"
30    i = "Sid"
40    Debug.Print "A"

50    Exit Sub
Whoa:
    MsgBox "Error on Line : " & Erl
End Sub

これを機能させるには、上記のようにコード行に番号を付ける必要があります。上記のコードを実行して、何が起こるかを確認してください。

11
Siddharth Rout
Sub Main()

    Dim lNum As Long

    On Error GoTo ErrHandler

    lNum = 1 / 0

ErrExit:
    Exit Sub

ErrHandler:
    Debug.Print Err.Description
    Stop
    Resume

End Sub

停止したら、2回ステップインします。 F8がない場合は、行にステップインするためのメニュー項目が必要です。再開すると、エラーの原因となった行に戻ります。

6
Dick Kusleika
  1. ツールバーを右クリックします。
  2. 「カスタマイズ...」を選択します
  3. 「デバッグ」を選択します
  4. 「ステップイン」をツールバーにドラッグします。
4
saru_