VBA:【FSO】ファイルの削除「FileSystemObject」
◆ファイル名を指定して削除
ファイル名を指定して、そのファイルだけを削除する方法です。
削除するファイルはフルパスで指定します。
1 2 3 4 5 6 7 8 9 10 11 |
Sub ファイル名を指定して削除() Dim xTmpPath As String Dim FSO As FileSystemObject xTmpPath = "C:\Users\VBA\サンプル.csv"'ファイル名まで指定' Set FSO = New FileSystemObject Call FSO.DeleteFile(xTmpPath, True) ' 指定したファイルを削除 Set FSO = Nothing End Sub |
◆フォルダ内のファイルをまとめて削除
ここではフォルダ内にあるファイルの削除を行います
以下のサンプルコードの。
(1)は、指定したフォルダのテキストファイルだけすべて削除します。
(2)は、指定したフォルダ内のすべてのファイルを削除します。
やりたいことによってどちらかをお使いください。
※対象フォルダのパスを間違えると意図しないファイルまで削除されてしまうので、パスにはご注意ください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Sub フォルダにあるファイルを削除() Dim xTmpPath As String Dim FSO As FileSystemObject xTmpPath = "C:\Users\VBA"'削除したいファイルの入っているフォルダ名を指定' Set FSO = New FileSystemObject '(1)指定したフォルダのテキストファイルだけすべて削除' Call FSO.DeleteFile(xTmpPath & "\*.txt", True) '(2)指定したフォルダ内のすべてのファイルを削除' Call FSO.DeleteFile(xTmpPath & "\*", True) Set FSO = Nothing End Sub |
◆フォルダ内のファイルを全て削除
フォルダ内のファイルをすべて削除する方法は他にも以下のものもあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Sub フォルダにあるファイルを全て削除() Dim xTmpPath As String Dim FSO As FileSystemObject Dim FOL As Folder Dim FIL As File xTmpPath = "C:\Users\VBA"'削除したいファイルの入っているフォルダ名を指定' Set FSO = New FileSystemObject Set FOL = FSO.GetFolder(xTmpPath) '対象フォルダの情報取得' For Each FIL In FOL.Files FIL.Delete (True) ' フォルダにあるファイルがなくなるまで繰り返します。 Next Set FSO = Nothing End Sub |