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