Excel 2010 VBAのDir関数が機能しない
-
12-12-2019 - |
質問
指定されたディレクトリをループして、最新のダウンロードされた CSV ファイルを見つけようとしています。何らかの理由で、ファイルが存在する場合でも、Dir 関数はファイルを見つけられません。私は VBA に完全に精通しているわけではないので、Dir 関数を実行するための何らかの参照が欠けている可能性がありますが、オンラインでその必要があることを示すものは見つかりません。すべての例とフォーラムは私と同じように Dir を使用していますが、私のものは機能しません。これがコードです。私が間違っていることがわかるかどうか教えてください。
Public Function Get_File() as string
Dim filePath As String
ChDir ("..")
filePath = CurDir
'Goes back to Documents directory to be in same directory as macro
ChDir (filePath & "\Documents")
filePath = filePath & "\Downloads\test.txt"
filePath = getLatestFile(filePath)
Get_File = filePath
End Function
Public Function getLatestFile(pathToFile As String) As String
Dim StrFile As String
Dim lastMod As Variant
Dim nextMod As Variant
Dim lastFileName As String
StrFile = Dir(pathToFile)
lastFileName = StrFile
lastMod = FileDateTime(StrFile)
While Len(StrFile) > 0
Debug.Print StrFile
StrFile = Dir
nextMod = FileDateTime(StrFile)
If nextMod > lastMod Then
lastFileName = StrFile
lastMod = nextMod
End If
Wend
getLatestFile = lastFileName
End Function
test.txt ファイルはダウンロード ファイル内にあり、filePath 文字列は正しいパスとして出力されますが、ファイルが見つからないというエラーが表示され続けます。Dir(pathToFile) の最初の使用時に失敗します。ご協力をいただければ幸いです。
解決
Dir()
パスのファイル名部分のみを返します。つまり、フォルダー部分は返しません。例えば、
Dir("C:\MyPath\MyFile.txt")
戻り値 MyFile.txt
ない C:\MyPath\MyFile.txt
所属していません StackOverflow