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 内で動作し、ファイルシステムの操作を行います。

コードの詳細

  1. FileSystemObjectの作成:With New FileSystemObject
    ここでは FileSystemObject のインスタンスを作成しています。このオブジェクトを使ってファイルシステムにアクセスします。
    ' 以下は、参照設定有無にかかわらず使用可 ' With CreateObject("Scripting.FileSystemObject")
    参照設定がなくても動作するコードをコメントアウトしています。
  2. コピーおよび移動先のフォルダパスの指定:Dim myDestination As String myDestination = "C:\TEMP\コピー移動先\"
    ここでは、コピーおよび移動の目的地となるフォルダパスを myDestination という変数に設定しています。
  3. 指定フォルダの取得と操作:With .GetFolder("C:\TEMP")
    指定されたパス(”C:\TEMP”)のフォルダオブジェクトを取得します。このフォルダ内で操作を行います。
  4. サブフォルダのコピー:.SubFolders("hoge").Copy myDestination
    • "hoge" フォルダを指定されたコピー先(myDestination)にコピーします。
  5. サブフォルダの移動:.SubFolders("fuga").Move myDestination
    • "fuga" フォルダを指定された移動先(myDestination)に移動します。
  6. サブフォルダの削除:.SubFolders("piyo").Delete
    • "piyo" フォルダを削除します。

コード全体の動作まとめ

  • FileSystemObject を使用して “C:\TEMP” フォルダ内のサブフォルダに対して操作を行います。
  • "hoge" フォルダを “C:\TEMP\コピー移動先” にコピーします。
  • "fuga" フォルダを “C:\TEMP\コピー移動先” に移動します。
  • "piyo" フォルダを削除します。

このコードを実行することで、指定されたサブフォルダに対するファイル操作(コピー、移動、削除)が実行されます。これにより、フォルダの管理が簡単に行えます。

Follow me!