- ベストアンサー
ファルダ内に散在してるファイルを検索し一箇所にコピーしたい
Excelセルに記述したファイル名(ワイルドカード指定可)で、 フォルダ、サブフォルダ内に、ばらばらに散らばっているファイルを 検索し、見つけたら特定のフォルダに全部集めたい(コピーしてくる)のですが、スクリプトをご教授いただけないでしょうか? よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
★『EXCEL』って事は『VBA』ですよね。 ・『VBScript』のスクリプトでのお話ですが、サンプルを載せます。 ・上手く『VBA』用に書き換えてみて下さい。→参考になればと思い。 'Excel セルに記述したファイル名(ワイルドカード指定可) strFindPath = "C:\Excel\*.txt" 'コピー先(移動先)のフォルダ名(全部集めたい場所) strCopyPath = "C:\AllFiles\" Call CustomCopyFile(strFindPath,strCopyPath) '処理ルーチン Sub CustomCopyFile(BasePath,CopyPath) Set objFS = CreateObject("Scripting.FileSystemObject") Set objFolder = objFS.GetFolder(BasePath) 'ファイル名(ワイルドカード指定可)の検索 For Each objFile In objFolder.Files strFname = objFolder.Path & "\" & objFile.Name 'コピー処理 objFS.CopyFile strFname, CopyPath 'objFS.MoveFile strFname, CopyPath Next End Sub 最後に: ・ソースを見やすくするために全角スペースでインデントしています。 参考にするときは、タブ文字などに変換してお使い下さい。 ・『strFindPath』に検索するファイル名を指定します。 ・『strCopyPath』に移動するフォルダ名を指定します。→最後に『\』を必ず追加します。 ・『CustomCopyFile』を呼び出すと指定された『strFindPath』のファイル名を検索して 『strCopyPath』で指定されたフォルダにコピーします。 なお、コピーではなくて移動ならば『objFS.CopyFile』、『objFS.MoveFile』に変更して下さい。 ・『VBScript』のスクリプトですので、上手く『VBA』用に書き換えてみて下さい。 ・以上。おわり。
お礼
ありがとうございました。 いただいた内容を参考に、VBAスクリプトを考えてみたいと思います。