ファイルを移動する(Nameステートメント)|Excel VBA |
ファイルのコピーはFileCopyステートメントでできますが、VBAにはファイルを移動するための命令は用意されていません。
もっとも、ファイルの名前を変更するNameステートメントを利用すると、ファイルを他のフォルダに移動できます。
▼Nameステートメントの構文
Name 古い名前 As 新しい名前
FileCopyステートメント違い、引数の間はカンマではなく As です。
このとき「古い名前」「新しい名前」ともに、パス名を指定できるので、異なるフォルダを指定することで、結果的にファイルが移動することになります。
次のコードは、「C:\Tmp\Test.txt」を「C:\Work」フォルダに移動します。
Sub Sample1() Name "C:\Tmp\Test.txt" As "C:\Work\Test.txt" End Sub
Nameステートメントはもともと、ファイルを移動するための命令ではなくファイル名を変更するための命令です。そのため、「新しい名前」のファイルがすでに存在するとエラーになります。
Nameステートメントを実行する前には、Dir関数で存在確認をするといいでしょう。
なお、次のように、他のドライブに移動することも可能です。
Sub Sample2() Name "C:\Tmp\Test.txt" As "D:\Tmp\Test.txt" End Sub