2010-11-19 13 views
0

でファイルが見つからない例外をキャッチ:DIRは、私は例外BADファイル名または番号を取得後、存在しない場合VBA:私はファイルを開くためにDIRを使用していDIR

If Dir("some dir" + "some file", vbNormal) <> "" The 
End If 

を。しかし、dirが存在すれば、このIF文は正常に動作します。

質問 DIRが存在しない場合の例外処理の仕組みは?

+0

ことは「いくつかのディレクトリ」そうとは何ですか?上記のコードはそのまま実行されますが、&を使用する代わりに+を使用しても、前述のエラーは発生しません。 – Fionnuala

答えて

2
Public Function IsADirectory(ByVal TheName As String) As Boolean 
    If GetAttr(TheName) And vbDirectory Then 
    IsADirectory = True 
    End If 
End Function 

これはどうですか?

+0

完璧に見えますが、これにもお答えください。http://stackoverflow.com/questions/4227526/vba-passing-a-variable-into-error-handles –

+0

確かに...見てみましょう – thedev

+0

これはしません動作しません。ファイルが見つかりません。 –

0

次のコードは、ターゲット存在しない場合を扱う:

Public Function IsADirectory(ByVal TheName As String) As Boolean 
    On Error Resume Next 
    Dim theResult As Boolean 
    theResult = GetAttr(TheName) And vbDirectory 
    If Err.Number = 0 Then 
     IsADirectory = theResult 
    Else 
     MsgBox "The target is not found." 
    End If 
End Function 
関連する問題