過去ログ

                                Page     136
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼文字列を含むファイル検索(指定ディレクトリ下)  トルマりんご 02/9/27(金) 13:35
   ┗Re:文字列を含むファイル検索(指定ディレクトリ下)  トルマりんご 02/9/27(金) 14:53

 ───────────────────────────────────────
 ■題名 : 文字列を含むファイル検索(指定ディレクトリ下)
 ■名前 : トルマりんご
 ■日付 : 02/9/27(金) 13:35
 -------------------------------------------------------------------------
   Excel VBAにて
  ある指定ディレクトリ下(サブディレクトリも含む)のテキストファイル
  (拡張子指定)で、指定文字列を含むファイルを検索するロジックを
  下記方法で作成したのですが、非常に遅く感じています。
  もっと高速検索するにはどう作ったら良いのでしょうか?

  ●現在の遅い方法
   1. ある指定ディレクトリ下(サブディレクトリも含む)ファイル
    リストを作成(ディレクトリ下のサブディレクトリ名取得と
    ディレクトリ内のファイル名取得する再帰関数にて)。   
    ※ 500ファイル位で感覚的に10秒程度

   2. 1.リストより、1ファイルずづ ファイルOpenして、
    InStr()にて、指定文字列を含むかどうか判断する。
    ※ こちらが、10分もかかる感覚

    For lngListCnt = 1 To lngListCntMax Step 1
      intFileNum = FreeFile()
      Open strFileList(lngListCnt) For Input As #intFileNum
        strFilebuf = Input(LOF(intFileNum), #intFileNum)
      Close #intFileNum
      If InStr(1, strFileBuf, strTarget, vbTextCompare) >= 1 Then
        '★指定文字列を含むファイルが見つかりました!!
      End If
    Next lngListCnt
 ───────────────────────────────────────  ■題名 : Re:文字列を含むファイル検索(指定ディレクトリ下)  ■名前 : トルマりんご  ■日付 : 02/9/27(金) 14:53  -------------------------------------------------------------------------
   質問が誤解されそうなので、補足します。
検索は、ファイル名に含む"文字列"ではなく、
ファイル中身の"文字列"検索です。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 136