| 
    
     |  | ▼すいまーひろ さん:こんにちは〜 
 >フォルダにテキストファイルがあり、それを読み込んで、先頭データが検索条件に一致したものだけをシートにリストアップします。
 >今まではFileSearchを使用していましたが、2010では使えないので、
 
 >上記で動かすと、フォルダ内のファイルが少ないとうまく行くのですが、多いといつまで待っても動きません。
 >2003-FileSearchでやっていたときは、古い、とろくさいパソコンでも3分ほどで処理できてたのですが・・・。
 
 アドバイスでなくて確認なんですが、
 ファイルの検索を FileSearchから Fsoに代えたら、少なくとも3分で終わってた処理が
 「いつまで待っても」終わらないことがあるようになった、ということですか?
 
 プログラムの後半(Line Input# でOpenして2行読む部分)は
 考え方として 変更なしですか?
 
 後半の処理に大きな変更がないなら、前半の FileSearch の方法を変えたことが
 処理が遅くなっている原因、という結論におのずと導かれるのですが、実は
 FSOによる検索処理は、通常 FileSearchよりは高速に動作します。
 (といっても Dir関数のLoopに比べれば、格段に遅いし、Dir関数よりも
 Dirコマンドのほうが速いですし、もちろんFind File系のAPIが最速ですが)
 
 なので、遅くなった理由は FSO に切り替えたことより、
 ひょっとして 後半の処理もなにか根本的なところを変更されていて
 それが原因で、全体の動作が緩慢になっているとは考えられませんか?
 
 後半の処理で、気になるところですが、
 プロパティに何度もアクセスするのは遅くなる元です。プロパティで取得した
 値は変数に格納して、それを使いまわししましょう。
 
 具体的には
 >   If Len(myname) >= Len(ws1.Range("F2")) Then
 
 以降に出てくる 「ws1.Range("F2")」です。
 
 ひょっとしたら、この部分の記述は
 
 If InStr(myname, ws1.Range("F2").Value) > 0 Then
 'もし myname に ws1.Range("F2").Value が含まれていたら
 
 ですむとか?
 
 |  |