ファイルの存在を確認する
2017/06/25
最も簡単な書き方としては、Dir関数を使う
Sub CheckFile()
If Dir(Range("A1")) = "" Then
Range("B1") = "ファイル取得失敗"
End If
If Dir(Range("A1")) <> "" Then
Range("B1") = "ファイル取得成功"
End If
End Sub
ただいくつか問題があって
- 文字数の制限がある(256バイト以下)
- ファイルに使えない文字(\ / : * ? " < > |)があるとエラー
- ネットワーク上のパス(\123.456.789\とか)ではエラー
まれに何故だ!?ってなる。
自分で使う分にはいいけど、エラーの出ない堅固なコードにしたいならFileSystemObjectを使うのが無難
Sub CheckFile2()
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(Range("A1")) Then
Range("B1") = "ファイル取得成功"
Else
Range("B1") = "ファイル取得失敗"
End If
End Sub
ファイルの存在を調べる
http://officetanaka.net/excel/vba/file/file06.htm
Dir関数の制限について
http://excel-ubara.com/excelvba4/EXCEL262.html