ファイルの削除
Killステートメントを使います。
ワイルドカード文字を使用することで、複数ファイルを削除することもできます。
実行プログラム
1 2 3 4 5 |
Sub Sample7_6_1() Kill "C:\excelmemo\Sample7_6*.txt" End Sub |
- ファイルが存在しない場合、エラーが発生します。ファイル存在確認が必要です。
- 隠しファイルは削除できません。
FileSystemObjectを使ったファイルの削除
GetFileメソッドで取得したFileオブジェクトを、Deleteメソッドで削除します。
次のサンプルコードもSample7_6_1と同じ結果になります。
実行プログラム
1 2 3 4 5 6 7 8 9 10 11 |
Sub Sample7_6_2() Dim objFSO As Object Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFile "C:\excelmemo\Sample7_6*.txt" Set objFSO = Nothing End Sub |
- 隠しファイルも削除できます。
読み取り専用ファイルの削除
Killステートメント、Deleteメソッドは削除対象ファイルに読み取り専用ファイルが含まれている場合は削除できません。
エラーとなります。
読み取り専用ファイルが含まれている可能性がある場合は、属性のチェックが必要になります。
Attributesプロパティでファイルの属性を取得できます。
次のプログラムは読み取り専用ファイルも削除しています。
Attributesプロパティでファイルの属性を取得し、読み取り専用ファイルだった場合は、標準ファイルに設定してから削除しています。
実行プログラム
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 |
Sub Sample7_6_3() Dim objFSO As Object Dim varFile As Variant Set objFSO = CreateObject("Scripting.FileSystemObject") ' 対象フォルダ内のファイル ループ For Each varFile In objFSO.GetFolder("C:\excelmemo").Files If varFile.Name Like "Sample7_6*.txt" Then ' 属性チェック If objFSO.GetFile(varFile).Attributes <> Normal Then objFSO.GetFile(varFile).Attributes = Normal ' 標準ファイル End If varFile.Delete ' 削除 End If Next varFile Set objFSO = Nothing End Sub |