【VBA:Tips】フォルダの削除

フォルダの削除

VBAでフォルダを削除する方法として、FileSystemObjectを使用する方法があります。

 

FileSystemObjectは、ファイルシステムオブジェクトを操作するための標準ライブラリであり、ファイルやフォルダの作成や削除、コピー、移動などを簡単に行うことができます。

 

ここでは、FileSystemObjectを使ってVBAでフォルダを削除する方法について説明します。

 

【サンプルソース】フォルダの削除

以下は、FileSystemObjectを使用してVBAでフォルダを削除するサンプルコードです。

Sub DeleteFolder()
    Dim FSO As Object
    Dim FolderPath As String
    
    ' FileSystemObjectを生成
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    ' フォルダのパスを指定
    FolderPath = "D:\200_work\100_sample\新しいフォルダ2"
    
    ' フォルダが存在する場合は削除
    If FSO.FolderExists(FolderPath) Then
        FSO.DeleteFolder (FolderPath)
        MsgBox "フォルダを削除しました。"
    Else
        MsgBox "指定されたフォルダは存在しません。"
    End If
    
    ' FileSystemObjectを解放
    Set FSO = Nothing
End Sub

上記のサンプルコードでは、まずFileSystemObjectを生成し、フォルダのパスを指定します。

次に、FolderExistsメソッドを使用して、フォルダが存在するかどうかを判断します。

フォルダが存在する場合は、DeleteFolderメソッドを使用してフォルダを削除します。

 

フォルダにサブフォルダやファイルが存在する場合、サブフォルダやファイルも削除されます。

フォルダが削除されたら、メッセージボックスで「フォルダを削除しました。」と表示されます。

 

フォルダが存在しない場合は、メッセージボックスで「指定されたフォルダは存在しません。」と表示されます。

 

【サンプルソース】ワイルドカードを利用した複数フォルダの削除

以下は、ワイルドカード(*)を利用して複数フォルダを削除するサンプルコードです。

このコードでは、指定されたパスにマッチするすべてのフォルダを削除します。

Sub DeleteMatchingFolders()
    Dim fso As Object
    Dim objFolder As Object
    Dim strFolder As String
    Dim strPattern As String
    Dim strFolderName As String
    
    ' ファイルシステムオブジェクトを作成する
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' 削除するフォルダのパスとパターンを指定する
    strFolder = "D:\200_work\100_sample\新しいフォルダ2\"
    strPattern = "Test*"
    
    ' 指定されたパスにマッチするすべてのフォルダを削除する
    For Each objFolder In fso.GetFolder(strFolder).SubFolders
    
        strFolderName = objFolder.Name
        
        If strFolderName Like strPattern Then
            fso.DeleteFolder strFolder & strFolderName, True
        End If
        
    Next
    
    MsgBox "END"
    
    ' ファイルシステムオブジェクトを解放する
    Set fso = Nothing
    
End Sub

このコードでは、GetFolderメソッドを使用して、指定されたパスのSubFoldersコレクションからすべてのサブフォルダを取得します。それぞれのサブフォルダについて、Nameプロパティを使用して名前を取得し、Like演算子を使用して指定されたパターンと一致するかどうかを確認します。

このコードでは、フォルダのパターンを”Test*”と指定しています。
Test1、Test10、Testなどがパターンと一致することになります。

一致する場合は、DeleteFolderメソッドを使用してフォルダを削除します。

注意点として、このコードは指定されたパターンにマッチするすべてのフォルダを削除しますので、誤って必要なフォルダを削除しないように注意してください。また、削除するフォルダのパスとパターンを正しく指定する必要があります。

まとめ

VBAでフォルダを作成する方法として、FileSystemObjectを使用する方法を紹介しました。

フォルダが存在しない場合、エラーが発生するため、事前にフォルダの存在を確認する必要があります。

また、フォルダを削除すると、そのフォルダ内の全てのファイルおよびサブフォルダも削除されます。

そのため、フォルダ削除の前に内容を確認する必要があります。

 

以上です。

 

 

最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です