|
こんにちは。
いつもお世話になっています。
また行き詰っているので、教えてください。
複数の階層に渡って存在する複数のフォルダの各末端にデータファイルがたくさんあります。
FolderA の下に SubFolder1, SF2, SF3,...。
その各SFのしたにSubSubFolderイ, SSFロ, SSFハ...と続き、
その各SSFの下にDetaFileあ, DFい, DFう...と続きます。
フォルダもファイルも会社のサーバー内にあり、ファイルはカテゴリで分けられており、
データファイルが新規に増えれば、フォルダもファイルも新しく増える可能性があります。
その全ファイル名のリストを取得したのですが、その方法が分かりません。
#22734が一番近いような気がしたので、「にらめっこ」したのですが、
何をしているのか、ぼんやりとしか分からない状態です。
下記のコードは、エラーがでます。(安易なもので、すみません。。。)
なぜかは分かっていませんが、Dirを異なる階層で何度もループで使用するのは
Dirの戻り値が変わるから、良くないのかな。。。と思っています。
何か、糸口だけでも教えていただけないでしょうか。
また上記の理由が間違っていましたら、その正しいエラーの出る
理由も併せて教えていただけないでしょうか。
よろしくお願いします。
Sub FSearch()
Dim PartsPath As String
Dim FldName1 As String
Dim FldName2 As String
Dim FilName As String
PartsPath = "K:\AAA\BBBB\"
FldName1 = Dir(PartsPath, vbDirectory)
Do While FldName1 <> ""
If FldName1 <> "." And FldName1 <> ".." Then
If (GetAttr(PartsPath & FldName1) And vbDirectory) = vbDirectory Then
FldName2 = Dir(PartsPath & FldName1 & "\", vbDirectory)
Do While FldName2 <> ""
If FldName2 <> "." And FldName2 <> ".." Then
If (GetAttr(PartsPath & FldName1 & "\" & FldName2) & _
And vbDirectory) = vbDirectory Then
FilName = Dir(PartsPath & FldName1 & "*.xls", vbNormal)
Do While FilName <> ""
Debug.Print FldName1, FldName2, FilName
FilName = Dir
Loop
End If
End If
FldName2 = Dir →ここでエラー
Loop
End If
End If
FldName1 = Dir
Loop
End Sub
|
|