エクセルVBAでファイルを移動する

エクセルVBAで、ファイルを移動させる方法を紹介しています。ファイル移動には、Name ステートメントを使っています。Name ステートメントは、ファイル名やフォルダ名を変更する時に使いますが、移動元のファイルと移動先のファイルを同じ名前にすると、ファイルが移動します。Name ステートメントは簡単に、ファイルを移動させることができるので、使いやすいです。ボタンを作っておくと、ボタンをクリックするだけでファイル移動ができるので便利です。似たようなフォルダ名があると、ファイルを移動させるフォルダを探すのも大変です。エクセルVBAで移動させると、誤って他の場所に移動させたりすることもありません。ドラッグして移動させる時に、ファイルががどこに行ったか分からなくなったという事はないでしょうか。エクセルVBAでファイルを移動させると、間違いなく一発で移動させることができます。

 

 

Name ステートメント

 

Name ステートメントは、ファイルの名前やフォルダの名前を変更したりする時に使いますが、ファイルの移動やフォルダの移動もできます。

Name ステートメントの構文: Name OldPathName As NewPathName

OldPathName:

名前を変更するファイル名を指定します。 フォルダ名、ドライブ名も指定できます。

NewPathName:

新しいファイル名を指定します。 フォルダ名、ドライブ名も指定できます。

 

 

ファイルを別のフォルダに移動

エクセルVBAで、ファイルを移動するコードです。

「作業フォルダ」にある「解約一覧表.xls」を、「業務フォルダ」に移動させましょう。

Sub ファイル移動()
Name “D:\作業フォルダ\解約一覧表.xls” As “D:\業務フォルダ\解約一覧表.xls”
End Sub

OldPathName と NewPathName に指定するファイル名を同じにすると、ファイルが移動されます。

ファイルを別のドライブに移動

Dドライブにあるファイルを、Cドライブに移動させるコードです。

Name ステートメントでは、ファイルを別のドライブに移動させルこともできます。

Sub ファイル移動()
Name “D:\作業フォルダ\解約一覧表.xls” As “C:\業務フォルダ\解約一覧表.xls”
End Sub

 

 

ファイルがなかった時にでるエラーを回避

Name ステートメントでファイルを移動する時、指定したファイルがなかった場合、エラーになります。

ファイルの存在は、Dir 関数でチェックできます。

エラーになった場合、エラーを表示させないで、MsgBoxを 使ってメッセージを出してみましょう。

ここでは、「フォルダを確認して下さい。」のメッセージを表示させます。

Sub ファイル移動A()
If Dir(“D:\作業フォルダ\解約一覧表.xls”) <> “” Then
Name “D:\作業フォルダ\解約一覧表.xls” As “D:\業務フォルダ\解約一覧表.xls”
Else
MsgBox “フォルダを確認して下さい。”, vbInformation
End If
End Sub

Name でファイルを簡単に移動

エクセルVBAで、ファイルを移動する方法は他にもあります。Name ステートメントは、ファイル名を変更する場合に使いますが、移動にも使えるのでファイル名の指定には気を付けましょう。引数 OldPathName と NewPathName に指定するファイル名を、違う名前にすると、ファイル名が変更されます。同じにすると、ファイルが移動されます。ファイルの移動は簡単ですが、ドラッグで移動すると、失敗して他のフォルダに移動させてしまったりすることもあります。それだけでなく、フォルダが沢山あると、どのフォルダにファイルが移動したか分からなくなってしまう事もあります。そうなると、ファイルを探すのは大変です。大事なファイルは、管理するのも大切です。ファイルを移動を、エクセルVBAで作っておくと、使いまわしもできます。

こちらの記事もご覧ください。⇒エクセルVBAでフォルダ名を変更してフォルダを移動させる