2016-10-17 8 views
0

特定のファイルを特定のファイルの場所に自動的に整理しようとしています。ファイルタイプは.xlsと.pdfの両方であり、あらかじめ決められたリストに基づいて特定のフォルダにソートするだけです。ファイルをフォルダに自動的に整理する

例えば私のリストは以下のとおりです。

---------------------------------------- 
| Files  | Directory to move to | 
---------------------------------------- 
| ABC.xls | \Folder1\    | 
| ABC.pdf | \Folder1\    | 
| xyz.xls | \Folder2\    | 
| xyz.pdf | \Folder2\    | 
---------------------------------------- 

だから私は、ファイル名と拡張子とそれが移動する必要があるフォルダを持っています。このリストをExcelに置くことは可能ですか?そして、マクロはブックが保存されているのと同じパスを検索し、ファイルを見つけて新しいパスに移動します(まだ作成されていない場合は作成します)。

+0

はい、可能です。 –

+0

これを達成するのに役立つコードを特定するために、あなたや他の人が助けてくれますか? –

+0

Youtubeで完全な[Excel VBAはじめに](https://www.youtube.com/playlist?list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5)シリーズをご覧ください。これは関連する[Excel VBAの紹介パート22 - ファイルとフォルダ(FileSystemObjects)](https://www.youtube.com/watch?v=zHJPliWS9FQ&list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5&index=25)です。あなたがそれを働かせることができない場合、戻っていくつかのコードを投稿して、私は喜んでそれをデバッグするのに役立ちます。 –

答えて

0

元のファイルパス(たとえば "C:\ file1.xlsm")が列Aにあり、宛先ファイルパスが列B( "C:\ Data Files \ Newfile1.xlsm"など)にあると仮定すると、 FileCopyをコピーしてファイルの名前を新しい宛先に変更し、Killを元に戻します。一時的なバットファイルを作成して実行してから削除するよりもずっと簡単だと思います。新しいディレクトリを作成するのにMkDirを使用する必要があるかもしれませんが、Batファイルで同様のことを行う必要があります。

Sub MoveFiles() 
    Dim r As Range 

    With Worksheets("Sheet1") 
     For Each r In .Range("A1", .Range("A" & .Rows.Count).End(xlUp)) 
      FileCopy r.Value, r.Offset(0, 1).Value 
      Kill r.Value 
     Next 
    End With 
End Sub 
0

私は、同様の方法でなく、Excelやマクロを必要とせずに動作するアプリケーション、Sorterを、作成しています。アプリケーション、Sorterは、ファイルを拡張子、すなわちpdf一緒にグループ化することによって機能しますが、docxとは別です。ドキュメントをまとめてグループ化できますが、ビデオやオーディオとは別のオプションもあります。ファイルの宛先を決定することができます。また、サブフォルダとそのサブフォルダをチェックし、ファイルの初期位置を基準に並べ替え/グループ化する再帰的な機能も備えています。アプリケーションは多数のファイルタイプを認識していますが、追加することができます。それを試して、それが助けになるかどうかを見てください。

関連する問題