• 締切済み

EXCEL2000 フォルダ内のファイルを検索

EXCEL2000 フォルダ内のファイルを検索 お分かりになる方がいましたらお力添えの程よろしくお願いします。 任意のフォルダ内で任意のファイルサーチが出来るマクロを実行したいのですが、ファイルサーチの値を全角、半角、大文字、小文字区別なく行いたいのです。 例えば,セル2,2に、topと入力したら、topもtopもTOPもTOPも検索対象に引っかかり、セルに書き出して欲しいのです。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ Sub ファイル一覧2() Dim vntF As Variant Dim objFS As FileSearch Dim objFSO As FileSystemObject Dim GYO As Long Dim cntFound As Long Set objFS = Application.FileSearch ' FileSearch Set objFSO = New FileSystemObject ' FSO Rows("5:65536").ClearContents Application.ScreenUpdating = False GYO = 4 With objFS .NewSearch .LookIn = Trim(Cells(1, 2).Value) ' Search開始フォルダ .Filename = Trim(Cells(2, 2).Value) ' 探索ファイル式 .SearchSubFolders = True ' サブフォルダも探索 ' 処理開始 If .Execute() <> 0 Then For Each vntF In .FoundFiles With objFSO.GetFile(vntF) GYO = GYO + 1 Cells(GYO, 1).Value = .Name Cells(GYO, 2).Value = .DateLastModified Cells(GYO, 3).Value = _ Left(.Path, Len(.Path) - Len(.Name) - 1) cntFound = cntFound + 1 End With Next vntF End If End With Set objFS = Nothing Set objFSO = Nothing ' 処理結果の表示 If cntFound = 0 Then MsgBox "見つかりません" Else MsgBox cntFound & "個見つかりました" End If End Sub

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

こんなに長いコードを質問に挙げる必要があるのですか。焦点がぼける。一応これで動くのでしょう。 この作業内容(フォルダ内の全ファイルを1つづつ掴む)のコードはWEB照会すれば、沢山在るものだ。Dir利用型とFSO利用型がある。 ーーー 焦点は >値を全角、半角、大文字、小文字区別なく、にあるのでしょう。 それは下記のコードのようなことを思いつかないだけでしょう。 ーー 1つのセルで検索すべきも文字列が決ったとき Sub test01() a = "top" MsgBox a MsgBox StrConv(a, vbWide) MsgBox StrConv(a, vbNarrow) MsgBox UCase(a) MsgBox LCase(a) End Sub を参考にすれば良いでしょう。 セルにある文字列を上記の文字列に、変化させ、今ある文字列と同じものは其れで良いとして、他の文字列(例えば全角に変化させたときの文字列)と等しいかIF文で聞けば仕舞いではないのか。

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

・探索対象を全ファイルにする。 ・探索されたファイル名と入力した値を全角・大文字に変換してから比較し、一致した場合だけ書き出す。 全角・半角の変換関数は、JIS,ASC 大文字・小文字の変換関数は、UPPER,LOWER

関連するQ&A