こんにちは、Ryoです。
VBAで処理しているとデータ取り込み完了したファイル等を別フォルダに移動したくなることが多々あるかと思いますので、今回はファイル移動について書いてみたいと思います。
1.「Name」を使って移動する
このNameは現在(移動元)のパスとファイル名、変更後(移動先)パスと
ファイル名を指定するものなので、これを利用して移動させます。
Sub File_Move1() Name ThisWorkbook.Path & "\Test_File.xlsx" As _ ThisWorkbook.Path & "\Out" & "\Test_File.xlsx" End Sub
このサンプルコードでは「Test_File.xlsx」ファイルを同じパスの中にある「Out」フォルダに移動します。
2.「Move」と「GetFile」を使う
「Move」「GetFile」を使って移動させる方法ですが、1のNameと同様に結果になります。
Sub File_Move2() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") fso.GetFile(ThisWorkbook.Path & _ "\Test_File.xlsx").Move ThisWorkbook.Path & "\Out\" End Sub
基本的にはどちらでも移動出来ますが、共に移動先に同名ファイルがあるとエラーが
発生しますので移動前には必ず同名ファイルの存在有無を確認するか、移動する際に
ファイル名を変更する必要があります。
ファイル名変更も考慮すれば、1のNameが適しているかもしれません。
私は被ると困る場合、移動させる際に日付と現在時刻(秒まで)を付加させたりしています。
そうしておくと、流石にファイル名被りませんからね。
以上が簡単ですが、VBAでファイルを移動する方法でした。
これは何かと使うケースが多いですから知っておくとかなり楽ですよ。
ご参考になれば幸いです。
Ryo