0

ワークブックが開いているかどうかを確認するコードをここで見つけましたが、

Run-time Error '70': Permission Denied if the file is open.

このエラーを処理する方法や、これに対処するためにコードを変更する方法がわかりません。

Sub Sample()
    Dim Ret

    Ret = IsWorkBookOpen("I:\RJB\Juan's Project\Summary Sheet.xlsm")

    If Ret = True Then
        MsgBox "File is open"
    Else
        MsgBox "File is Closed"
    End If
End Sub

Function IsWorkBookOpen(FileName As String)
    Dim ff As Long, ErrNo As Long

    On Error Resume Next
    ff = FreeFile()
    Open FileName For Input Lock Read As #ff 'This line is highlighted when the crash occurs
    Close ff
    ErrNo = Err
    On Error GoTo 0

    Select Case ErrNo
    Case 0:    IsWorkBookOpen = False
    Case 70:   IsWorkBookOpen = True
    Case Else: Error ErrNo
    End Select
End Function
4

1 に答える 1

2

これはもともと、この質問に対する正しい解決策であることが判明したコメントだったので、回答として追加します。

VBA エディタのオプションかもしれません。VBA エディタを開き、[ツール] -> [オプション] -> [全般] -> [エラー トラップ] セクションで [未処理のエラーでブレーク] -> [OK] を選択します。あなたのものは「すべてのエラーで中断」に設定されている可能性があります。

于 2013-08-22T19:00:37.543 に答える