HOME > 即効テクニック > Excel VBA > ファイル操作関連のテクニック > ファイルを移動する(Nameステートメント)

ファイルを移動する(Nameステートメント)|Excel VBA

ファイル操作関連のテクニック

ファイルを移動する(Nameステートメント)

(Excel 2000/2002/2003/2007/2010/2013)

ファイルのコピーは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