FSO Folder クラスのメソッドによるファルダをコピー、移動、削除
このコードは、FileSystemObject (FSO) を使用して、特定のフォルダ内のサブフォルダをコピー、移動、削除する方法を示しています。
' FSO Folder クラスのメソッドによるファルダをコピー、移動、削除
Private Sub FSO_FolderClass_Copy_Move_Delete()
' 参照設定「Microsoft Scripting Runtime」必要
With New FileSystemObject
' 以下は、参照設定有無にかかわらず使用可
'With CreateObject("Scripting.FileSystemObject")
' コピーおよび移動先のフォルダパスを指定します
Dim myDestination As String
myDestination = "C:\TEMP\コピー移動先\"
' 「C:\TEMP」フォルダを取得して操作を行います
With .GetFolder("C:\TEMP")
' 「hoge」フォルダを指定のコピー先にコピーします
.SubFolders("hoge").Copy myDestination
' 「fuga」フォルダを指定の移動先に移動します
.SubFolders("fuga").Move myDestination
' 「piyo」フォルダを削除します
.SubFolders("piyo").Delete
End With
End With
End Sub
全体の概要
このサブプロシージャ FSO_FolderClass_Copy_Move_Delete
は、FileSystemObject
を使って指定されたフォルダ内のサブフォルダをコピー、移動、削除する例を示しています。コードは VBA 内で動作し、ファイルシステムの操作を行います。
コードの詳細
- FileSystemObjectの作成:
With New FileSystemObject
ここではFileSystemObject
のインスタンスを作成しています。このオブジェクトを使ってファイルシステムにアクセスします。' 以下は、参照設定有無にかかわらず使用可 ' With CreateObject("Scripting.FileSystemObject")
参照設定がなくても動作するコードをコメントアウトしています。 - コピーおよび移動先のフォルダパスの指定:
Dim myDestination As String myDestination = "C:\TEMP\コピー移動先\"
ここでは、コピーおよび移動の目的地となるフォルダパスをmyDestination
という変数に設定しています。 - 指定フォルダの取得と操作:
With .GetFolder("C:\TEMP")
指定されたパス(”C:\TEMP”)のフォルダオブジェクトを取得します。このフォルダ内で操作を行います。 - サブフォルダのコピー:
.SubFolders("hoge").Copy myDestination
"hoge"
フォルダを指定されたコピー先(myDestination
)にコピーします。
- サブフォルダの移動:
.SubFolders("fuga").Move myDestination
"fuga"
フォルダを指定された移動先(myDestination
)に移動します。
- サブフォルダの削除:
.SubFolders("piyo").Delete
"piyo"
フォルダを削除します。
コード全体の動作まとめ
FileSystemObject
を使用して “C:\TEMP” フォルダ内のサブフォルダに対して操作を行います。"hoge"
フォルダを “C:\TEMP\コピー移動先” にコピーします。"fuga"
フォルダを “C:\TEMP\コピー移動先” に移動します。"piyo"
フォルダを削除します。
このコードを実行することで、指定されたサブフォルダに対するファイル操作(コピー、移動、削除)が実行されます。これにより、フォルダの管理が簡単に行えます。