• 締切済み

VBA

ACCESS2003やEXCEL2003のVBAでプログラムしようとしています。 所定のフォルダ内にあるファイルを、ファイル名を指定して検索する方法を教えてください。 【条件】 (1)所定のフォルダ  このフォルダには、大量のファイルがあります。  サブフォルダも存在して、その中にも検索するファイルがあります。  サブフォルダの階層もランダムです(サブフォルダの中にさらに  フォルダがあり、その中にもファイルがある場合があります)。  探すファイルは、複数存在する場合(フォルダ違いで)も  ありますが、すべて検索します。 条件が酷のような気がしますが、なるべく早い検索方法はあれば 幸いです。よろしくお願いします。

みんなの回答

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

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)
回答No.1

関連するQ&A

専門家に質問してみよう