エクセルVBAでフォルダ名を変更してフォルダを移動させる

エクセルでフォルダを、移動させることがあります。その時に、移動させるフォルダ名を、別な名前に変更したい場合、手作業で行うのは大変です。エクセルVBAを使うと、フォルダ名を変更して、フォルダを移動させることができます。そうすると、フォルダの中に保存されているファイルも、一緒に移動します。手作業でも簡単でできることですが、フォルダの場所や、フォルダ名によっては、時間のかかる作業にもなります。効率よく、間違いなくファイルの移動と、名前の変更したい場合は、エクセルVBAを使いましょう。ここでは、Name ステートメントを使って、フォルダ名の変更と、フォルダの移動を同時に行ています。指定したフォルダが無い場合は、エラーになってしまうので、エラーを回避する方法も紹介しています。

 

 

Name ステートメント

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

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

OldPathName:

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

NewPathName:

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

 

 

フォルダの移動

エクセルVBAで、フォルダ名を変更してフォルダを移動するコードです。

「予算」フォルダを、「前期」フォルダに移動させて、フォルダ名を「確定予算」に変更しましょう。

「予算」→「確定予算」にフォルダ名が変更して移動します。

Sub 名前を変更してフォルダ移動()
Dim 予算 As String
Dim 前期 As String
予算 = “D:\2018年度\予算”
前期 = “D:\2018年度\前期\確定予算”
Name 予算 As 前期
End Sub

「D:\2018年度」にある「予算」フォルダは、「D:\2018年度\前期」フォルダに移動します。

フォルダ名は、「予算」から「確定予算」に変更されているのを確認しましょう。

「予算」の中にあるファイルも、一緒に移動されます。

 

 

移動元、または移動先フォルダがなかった時のエラーを回避

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

エラーになった時に出てくるエラーを表示しないで、独自のメッセージを表示させましょう。

フォルダの存在をチェックするには、Dir 関数の引数 attributes の設定値に vbDirectory を指定します。

Sub 名前を変更してフォルダ移動A()
Dim 予算 As String
Dim 前期 As String
予算 = “D:\2018年度\予算”
前期 = “D:\2018年度\前期\確定予算”
If Dir(“D:\2018年度\予算”, vbDirectory) <> “” Then
Name 予算 As 前期
Else
MsgBox “フォルダを確認して下さい。”, vbInformation
End If
End Sub

フォルダの名前の変更と移動を同時に行う

エクセルVBAで、フォルダ名を変更して、フォルダを移動させたい時、Name ステートメント使うと簡単に移動できます。ですが、Name ステートメントは、指定したフォルダが無い場合は、エラーになってしまいます。エラーを回避するには、Dir 関数でフォルダの存在をチェックしてから、フォルダを移動させましょう。Name ステートメントは、ファイルやフォルダの名前を変更したり、移動させたりできるので、ファイルの操作にはよく使います。使いやすいので、簡単な操作には便利です。フォルダを移動させたり、フォルダ名を変更する時、時間がかかってしまう場合は、エクセルVBAを使って、フォルダの操作をしましょう。

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