【VBA】フォルダーを削除(DeleteFolder)

投稿者: | 2023年3月27日
excelアイコン

FileSystemObjectのDeleteFolderメソッドについてです。

DeleteFolderメソッド

概要

フォルダーを削除します。

構文

FileSystemObject.DeleteFolder folderspec,[force]

[ ]は省略可という意味

DeleteFolderメソッドの引数

引 数必須 / 省略可詳 細

削除するファイル
(folderspec)

必須・削除するフォルダーパスを指定。
(削除するフォルダーがない場合はエラー)
・ワイルドカードで複数削除可。
読み取り専用
(force)
省略可・読み取り専用属性が設定されたフォルダーを削除するかbool値で指定。
True:削除する
False:削除しない(既定値)
※読み取り専用フォルダーを削除する場合、True指定しないとエラー。

 

VBAサンプル

1つのフォルダーを削除

test1という名前のフォルダーを削除する場合

 

複数のフォルダーを削除

ワイルドカードでtestという名前が含まれているフォルダーを複数削除する場合

 

読み取り専用フォルダーの削除

テストという名前のフォルダーに読み取り専用のファイルがある場合
第2引数 → Trueにします。

もし第2引数を省略(False)は下記のようなエラー表示(書き込みできません)がでます。フォルダー内にあるファイルのうち、読み取り専用ではないファイルが先に実行された場合それらだけ削除されてからエラーが出ます。そして残りのファイルとフォルダーは残ったまま削除されません。

ファイル → フォルダーの順序で削除されます。ロールバック機能はないので注意しましょう。

VBA_deletefileエラー