DeleteFolderメソッドは指定したフォルダを削除します。
※ファイルシステムオブジェクト(FileSystemObject)についてはこちら
DeleteFolderメソッドの構文
構文
ファイルシステムオブジェクト.DeleteFolder 削除するフォルダパス(Folderspec),読み取り専用フォルダの削除設定(Force)
DeleteFolderメソッドの構成要素と引数
構成要素と引数
要素/引数 | 必須/任意 | 説明 |
---|---|---|
ファイルシステムオブジェクト (FSO) |
必須 | ファイルシステムオブジェクトを指定します。 |
削除するフォルダパス (Folderspec) |
必須 | 削除するファイルのパスを文字列で指定します。 |
読み取り専用フォルダの削除設定 (Force) |
任意 | 読み取り専用フォルダの削除するかを指定します。 True:削除する False:削除しない(初期値) |
その他のポイント
削除するフォルダパス(Folderspec)でワイルドカード文字が使用できるのは指定したパスの最後の文字列だけです。
DeleteFolderメソッドはフォルダの中のファイルの有無に関わらずフォルダを削除します。
削除するフォルダパス(Folderspec)に指定したフォルダが見つからなかった場合はエラーが発生します。
エラーが発生した時点でDeleteFolderメソッドは停止しますが、それまでに実行された処理を戻せません。
DeleteFolderメソッドをつかったサンプルマクロ
以下のマクロは、DeleteFolderメソッドの引数に指定したフォルダと含まれるファイルを削除します。削除する対象が読み取り専用であった場合でも処理を実行します。
サンプルコード①
①1つのファイルを指定して削除する
Option Explicit Sub ファイルシステムオブジェクト_DeleteFolderメソッド() 'ファイルシステムオブジェクトを使うため準備 '①事前バインディングの場合はVBEのツールより参照設定で「Microsoft Scripting Runtime」にチェックをしてください。 Dim FSO As FileSystemObject Set FSO = New FileSystemObject 'DeleteFolderメソッドの使用例 FSO.DeleteFolder "C:\Users\ユーザー名\Desktop\Test\サンプルフォルダ\A", True End Sub
実行結果
①1つのファイルを指定して削除する
C:\Users\ユーザー名\Desktop\Test\サンプルフォルダの中に入っているAフォルダを中身ごと削除します。
削除するフォルダのパスを指定するとフォルダと中に入っているファイルを削除するよ。
以下のマクロは、DeleteFolderメソッドの引数に指定したファイルを削除します。ワイルドカード文字で指定しているため、Bからはじまるフォルダの名前とその中のファイルをすべてが削除の対象となり、削除する対象が読み取り専用であった場合でも処理を実行します。
サンプルコード②
②複数のファイルを指定して削除する
Option Explicit Sub ファイルシステムオブジェクト_DeleteFolderメソッド() 'ファイルシステムオブジェクトを使うため準備 '①事前バインディングの場合はVBEのツールより参照設定で「Microsoft Scripting Runtime」にチェックをしてください。 Dim FSO As FileSystemObject Set FSO = New FileSystemObject 'DeleteFolderメソッドの使用例 FSO.DeleteFolder "C:\Users\ユーザー名\Desktop\Test\サンプルフォルダ\B*", True End Sub
実行結果
②複数のファイルを指定して削除する
C:\Users\ユーザー名\Desktop\Test\サンプルフォルダの中に入っているBからはじまる名前のすべてのフォルダと中身を削除します。
削除するフォルダパス(Folderspec)にワイルドカード文字を使うと複数のフォルダを削除できるよ。
オンラインスクールで現役エンジニアのサポートがあるテックアカデミーがおすすめ。
スキマ時間に学べて仕事も保証。必ず副業、始められます。まずは無料でプログラミング体験
コダマのもりブログはにほんブログ村に登録しています。
ブログの記事が役に立ったと感じて頂けたら、フォローお願いいたします。
コメント