- 締切済み
VBA
ACCESS2003やEXCEL2003のVBAでプログラムしようとしています。 所定のフォルダ内にあるファイルを、ファイル名を指定して検索する方法を教えてください。 【条件】 (1)所定のフォルダ このフォルダには、大量のファイルがあります。 サブフォルダも存在して、その中にも検索するファイルがあります。 サブフォルダの階層もランダムです(サブフォルダの中にさらに フォルダがあり、その中にもファイルがある場合があります)。 探すファイルは、複数存在する場合(フォルダ違いで)も ありますが、すべて検索します。 条件が酷のような気がしますが、なるべく早い検索方法はあれば 幸いです。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nda23
- ベストアンサー率54% (777/1415)
Function 検索(ByVal フォルダ As String, ByVal ファイル As String) Dim FSO, FLD Set FSO = CreateObject("Scripting.FileSystemObject") Set FLD = FSO.GetFolder(フォルダ) ReDim 結果(0) Dim 数 As Long 処理 FLD, ファイル, 結果, -1 If 数 >= 0 Then 検索 = 結果 '1個以上見つかった場合 Else ' == 見つからない場合 End If End Function Sub 処理(FLD, ファイル, 結果(), 数) Dim SF For Each SF In FLD.SubFolders 処理 SF, ファイル, 結果(), 数 Next Dim N For Each SF In FLD.Files N = SF.Name 'ここでファイル名を得る If N = ファイル Then 数 = 数 + 1 ReDim Preserve 結果(数) 結果(数) = SF.Path End If Next End Sub Function 検索 は見つけたファイルのパス名の配列を返します。
- fujillin
- ベストアンサー率61% (1594/2576)