エクセルVBAでフォルダをフォルダごと移動させる

エクセルでフォルダを移動させる時、手作業で移動させるのは面倒です。複数のフォルダを、指定した場所に移動させるとなると、分かりにくい場所への移動は、見つけるのに時間がかかって、意外と時間がかかることもあります。エクセルVBAを使うと、簡単にフォルダを移動できます。ここでは、MoveFolder メソッドを使って、フォルダを移動させています。MoveFolder メソッドを使うと、ワイルドカードを使って、複数のフォルダを移動させることもできます。フォルダ名を変更して、移動させることもできます。フォルダの大移動をしたい時には、便利です。一括で移動できるので、定期的に異動させる作業がある時は、大活躍します。

 

 

MoveFolder メソッド

MoveFolder メソッドは、フォルダを移動させる時に使います。

引数 Sourceのフォルダ名には、ワイルドカードが使用できますが、Destination には、ワイルドカードは使用できません。

ワイルドカードを使うと、複数のフォルダを移動することができます。

MoveFolder メソッドの構文 : Object.MoveFolder Source, Destination

Object   : FileSystemObject オブジェクトを指定します。

Source   : 移動するフォルダを指定します。

Destination : フォルダの移動先を指定します。

 

 

1つのフォルダを移動させる

エクセルVBAで、1つのフォルダを移動させるコードです。

フォルダの中のファイルも一緒に移動します。

「手数料」フォルダを、「改定」フォルダに移動させましょう。

Sub フォルダごと移動()
Dim fso As Object
Dim MFo As String
Dim IFo As String
Set fso = CreateObject(“Scripting.FileSystemObject”)
MFo = “D:\2018新規契約\手数料”
IFo = “D:\2018新規契約\改定\”
fso.MoveFolder MFo, IFo
Set fso = Nothing
End Sub

 

 

フォルダの名前を変更して移動

フォルダを移動させる時に、フォルダ名を変更して移動させるコードです。

「手数料」フォルダを、「改定」フォルダに、「改定手数料」と名前を変更して移動させましょう。

Sub フォルダの名前変更と移動()
Dim fso As Object
Dim MFo As String
Dim IFo As String
Set fso = CreateObject(“Scripting.FileSystemObject”)
MFo = “D:\2018新規契約\手数料”
IFo = “D:\2018新規契約\改定\改定手数料”
fso.MoveFolder MFo, IFo
Set fso = Nothing
End Sub

複数のフォルダを移動させる

MoveFolder メソッドにワイルドカードを使って、複数のフォルダを移動させましょう。

「2017年度契約」フォルダの中にある、全てのフォルダを、「新規契約」フォルダに移動させます。

Sub 複数のフォルダを移動()
Dim fso As Object
Dim MSfo As String
Dim RSfo As String
Set fso = CreateObject(“Scripting.FileSystemObject”)
MSfo = “D:\2017年度契約\*”
RSfo = “D:\2018年度契約\新規契約\”
fso.MoveFolder MSfo, RSfo
Set fso = Nothing
End Sub

フォルダ名の一部に、「2017」があるフォルダだけを移動させたい場合は、Source の指定を次のようにしましょう。

MSfo = “D:\2017年度契約\2017*”

「2017」で始まるフォルダが、全て移動されます。

 

 

指定したフォルダがない場合のエラー回避

MoveFolder メソッドでフォルダを移動させる時、指定したフォルダがないとエラーになってしまします。

エラーになった場合は、エラーを表示させないで、MsgBox で「フォルダを確認して下さい。」のメッセージを表示させましょう。

Sub フォルダ移動のエラー回避()
Dim fso As Object
Dim MFo As String
Dim IFo As String
Set fso = CreateObject(“Scripting.FileSystemObject”)
MFo = “D:\2018新規契約\手数料”
IFo = “D:\2018新規契約\改定\”
If Dir(“D:\2018新規契約\手数料”, vbDirectory) <> “” Then
fso.MoveFolder MFo, IFo
Set fso = Nothing
Else
MsgBox “フォルダを確認して下さい。”, vbInformation
End If
End Sub

こちらの記事もご覧ください。⇒エクセルVBAが初心者でも短期間でマスターできる楽パソ!音声と映像で自宅で学べる。

こちらの記事もご覧ください。⇒プログラミングスキルが初心者でも短期間でマスターできる楽パソ!音声と映像で自宅で学べる。

色々なフォルダ移動ができるMoveFolder

エクセルVBAで、フォルダを移動させる方法は、MoveFolder 以外にもあります。MoveFolder メソッドの特徴は、ワイルドカードが使えることです。引数 Sourceのフォルダ名に、ワイルドカードを使用して、複数のフォルダを移動させたり、特定の文字列を含んだフォルダを、一括で移動させることができます。フォルダの整理や、期末に整備するときなどに、一括でフォルダを移動できるので、移動のVBAを作っておくと便利です。フォルダのパスを変更するだけで、使いまわしもできるので、色々なフォルダ移動ができます。

こちらの記事もご覧ください。⇒エクセルVBAで複数のファイルを移動する

エクセル・ワード・パワーポイント・アクセス・マクロVBA・WEBプログラミングを入門から応用までらくらくマスターできる ➡ 動画パソコン教材

エクセルのマクロとVBAを入門から応用まで映像と音声でわかりやすく学ぶことができます。
↓ ↓ ↓ ↓ ↓
ワード・エクセルパワーポイント・アクセスとエクセルマクロVBA・WEBプログラミング・パソコンソフト作成を入門から応用まで映像と音声でわかりやすく学ぶことができます。
↓ ↓ ↓ ↓ ↓
VBA・Java・WEB・C#・HTML/CSSプログラミングを入門から応用まで映像と音声でわかりやすく学ぶことができます。
↓ ↓ ↓ ↓ ↓
ワード・エクセル・パワーポイント・アクセスを入門から応用まで映像と音声でわかりやすく学ぶことができます。
↓ ↓ ↓ ↓ ↓

ワード・エクセル・パワーポイント・アクセスとWEBプログラミングを入門から応用まで映像と音声でわかりやすく学ぶことができます。
↓ ↓ ↓ ↓ ↓