サイトについて      連絡先   検索

VBA フォルダの削除

はじめに

Excel VBA でフォルダを削除する方法を紹介します。

DeleteFolder 関数を使って指定したフォルダを削除できます。

ワイルドカードを使って複数のフォルダや全てのフォルダを削除できます。

FileSystemObject について

ここでは VBA の標準の関数より便利な FileSystemObject を使った方法を紹介しています。基本的な使い方については「FileSystemObject ファイル操作の基礎」をご覧ください。

コードを見やすくするため FileSystemObject を参照設定しています。また、エラー処理は行っていません。

フォルダの削除

誤って必要なフォルダを削除しないように、パスには注意してください。

指定したフォルダの削除


Dim fso As FileSystemObject
Set fso = New FileSystemObject ' インスタンス化

Call fso.DeleteFolder("D:\TipsFolder", True) ' 指定したパスのフォルダを削除

' 後始末
Set fso = Nothing

fso.DeleteFolder関数で指定したパスのフォルダを削除します。

第 1 引数に削除するフォルダのパスを指定します。フォルダが存在しないときはエラーが発生します。パスにはワイルドカードを指定できますが、詳しくは下記の「複数のフォルダを削除」をご覧ください。

第 2 引数に True を指定すると読み取り専用のフォルダを削除できます。False または省略すると読み取り専用のフォルダは削除しません。そのときはエラーが発生します。フォルダに読み取り専用が設定されていなくても、フォルダ内にあるフォルダやファイルに設定されているときは、それを削除しようとしたときにエラーが発生し、そこで処理が中断されます。それ以降のフォルダやファイルは削除されません。

サブフォルダを削除


Dim fso As FileSystemObject
Set fso = New FileSystemObject

Dim pfl As Folder
Set pfl = fso.GetFolder("D:\TipsFolder") ' 親フォルダを取得

Dim fl As Folder
For Each fl In pfl.SubFolders ' サブフォルダの一覧を取得
    If fl.Name = "SubTips" Then ' 削除したいフォルダ
        fl.Delete (True)        ' フォルダを削除
    End If
Next

' 後始末
Set fso = Nothing

fso.GetFolder関数で指定したパスの Folder オブジェクトを取得します。フォルダが存在しないときはエラーが発生します。

pfl.SubFoldersプロパティから、そのフォルダ内にある Folder オブジェクトの一覧を取得できます。

fl.Nameプロパティから、そのフォルダの名前を取得できます。これで削除したいフォルダを判定します。

fl.Delete関数でそのフォルダを削除します。使い方は上記で説明したfso.DeleteFolder関数と同じです。DeleteFolder の第 1 引数に、そのフォルダのパスが渡されます。

複数のフォルダを削除

ワイルドカードを使用して複数のフォルダをまとめて削除できます。


Dim fso As FileSystemObject
Set fso = New FileSystemObject

Call fso.DeleteFolder("D:\Tips*", True)        ' 複数のフォルダをまとめて削除
Call fso.DeleteFolder("D:\TipsFolder\*", True) ' すべてのフォルダを削除

' 後始末
Set fso = Nothing

fso.DeleteFolder関数の第 1 引数にワイルドカードを指定して、一致する複数のフォルダをまとめて削除できます。1 つもフォルダが一致しないときはエラーが発生します。

使用できるワイルドカードには次のものがあります。

D:\Tips*を指定すると次のフォルダが一致します。


D:\Tips
D:\Tips1
D:\Tips12
D:\Tips123

D:\Tips?を指定すると次のフォルダが一致します。


D:\Tips
D:\Tips1
D:\Tips2

D:\TipsFolder\*を指定すると、TipsFolder フォルダ内のすべてのフォルダと一致します。

関連ページ