VBAでフォルダを削除する方法として、FileSystemObjectを使用する方法があります。
FileSystemObjectは、ファイルシステムオブジェクトを操作するための標準ライブラリであり、ファイルやフォルダの作成や削除、コピー、移動などを簡単に行うことができます。
ここでは、FileSystemObjectを使ってVBAでフォルダを削除する方法について説明します。
もくじ
【サンプルソース】フォルダの削除
以下は、FileSystemObjectを使用してVBAでフォルダを削除するサンプルコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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メソッドを使用してフォルダを削除します。
フォルダにサブフォルダやファイルが存在する場合、サブフォルダやファイルも削除されます。
フォルダが削除されたら、メッセージボックスで「フォルダを削除しました。」と表示されます。
フォルダが存在しない場合は、メッセージボックスで「指定されたフォルダは存在しません。」と表示されます。
【サンプルソース】ワイルドカードを利用した複数フォルダの削除
以下は、ワイルドカード(*)を利用して複数フォルダを削除するサンプルコードです。
このコードでは、指定されたパスにマッチするすべてのフォルダを削除します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
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を使用する方法を紹介しました。
フォルダが存在しない場合、エラーが発生するため、事前にフォルダの存在を確認する必要があります。
また、フォルダを削除すると、そのフォルダ内の全てのファイルおよびサブフォルダも削除されます。
そのため、フォルダ削除の前に内容を確認する必要があります。
以上です。
最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。