Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1721 / 13645 ツリー ←次へ | 前へ→

【72368】FileSearchでのFilenameの使い方 太郎 12/7/23(月) 21:39 質問[未読]
【72369】Re:FileSearchでのFilenameの使い方 kanabun 12/7/24(火) 9:42 発言[未読]
【72370】Re:FileSearchでのFilenameの使い方 太郎 12/7/24(火) 21:23 お礼[未読]

【72368】FileSearchでのFilenameの使い方
質問  太郎  - 12/7/23(月) 21:39 -

引用なし
パスワード
   FifileSearchで、Filename = "?-*_??-*.xls"と指定しました。
"A-XX_BB-1234.xls"の様なファイルのみ検索すると期待しています。
実際には"過去情報A-XX_BB-1234.xls"の名前のファイルも検索されてしまいます。
前に"過去情報"が付くファイルは処理対象から外したいのですが、
Filename = "?-*_??-*.xls"の指定ではだめなのでしょうか?
どなたか教えて下さい。

【72369】Re:FileSearchでのFilenameの使い方
発言  kanabun  - 12/7/24(火) 9:42 -

引用なし
パスワード
   ▼太郎 さん:

>FifileSearchで、Filename = "?-*_??-*.xls"と指定しました。

>前に"過去情報"が付くファイルは処理対象から外したいのですが、
>Filename = "?-*_??-*.xls"の指定ではだめなのでしょうか?

前に"過去情報"などあっても、含んで FoundFiles コレクションに格納され
てしまいますね。
FoundFileをLoopして処理をするときに 再度

>    If Dir(.FoundFiles(i)) Like "?-*_??-*.xls" Then

のように、Like演算子で判別したらどうでしょう。

Sub test1()
  Dim i As Long
  
  With Application.FileSearch
    .NewSearch
    .LookIn = "D:\(Data)"
    .Filename = "?-*_??-*.xls"
    
    For i = 1 To .FoundFiles.Count
      If Dir(.FoundFiles(i)) Like "?-*_??-*.xls" Then
        '処理
      End If
    Next
    
  End With
  MsgBox "処理終了"
End Sub

【72370】Re:FileSearchでのFilenameの使い方
お礼  太郎  - 12/7/24(火) 21:23 -

引用なし
パスワード
   kanabunさん
回答ありがとうございます。
やっぱりダメですか!
用済みのファイルは、前に"過去情報"を付けて処理対象から外すようにしています。
とは言っても、まれに過去のデータを参照したい場合があり削除出来ないので
残しています。
データ数が多くなると、(我慢できる程度ではありますが)FileSeachに
時間が掛かってしまうので何とか処理対象から外せないかと思った次第です。
用済みファイルと必要ファイルのフォルダーを分けて運用するように
プログラムを変更します。

1721 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free