※本ブログのページには広告主との提携による広告や宣伝、プロモーションが含まれます。当ブログを経由しての商品の購入や、サービス申し込みが発生すると、それらの提携企業からの成果報酬を受けとる場合があります。

VBA|DeleteFileメソッド(ファイルシステムオブジェクト)

DeleteFileメソッドは指定したファイルを削除します。

※ファイルシステムオブジェクト(FileSystemObject)についてはこちら

DeleteFileメソッドの構文

ファイルシステムオブジェクト.DeleteFile 削除するファイルパス(Filespec),読み取り専用ファイルの削除設定(Force)

DeleteFileメソッドの構成要素と引数

要素/引数 必須/任意 説明
ファイルシステムオブジェクト
(FSO)
必須 ファイルシステムオブジェクトを指定します。
削除するファイルパス
(Filespec)
必須 削除するファイルのパスを文字列で指定します。
読み取り専用ファイルの削除設定
(Force)
任意 読み取り専用ファイルの削除するかを指定します。
True:削除する
False:削除しない(初期値)

削除するファイルパス(Filespec)でワイルドカード文字が使用できるのは指定したパスの最後の文字列だけです。

OKな例:”C:\Users\ユーザー名\Desktop\Test\*.txt”
NGな例:”C:\Users\ユーザー名\Desktop\*\*.txt”

削除するファイルパス(Filespec)に指定したファイルが見つからなかった場合はエラーが発生します。

エラーが発生した時点でDeleteFileメソッドは停止しますが、それまでに実行された処理を戻せません。

DeleteFileメソッドをつかったサンプルマクロ

以下のマクロは、DeleteFileメソッドの引数に指定したファイルを削除します。ファイルが読み取り専用であった場合も処理を実行します。

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

削除するファイルパス(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

削除するファイルパス(Filespec)にワイルドカード文字を使うと複数のファイルを削除できるよ。

PR

独学でプログラミングをはじめてみたけど、このままの学習方法に不安を感じているのなら、
オンラインスクールで現役エンジニアのサポートがあるテックアカデミーがおすすめ。
スキマ時間に学べて仕事も保証。必ず副業、始められます。まずは無料でプログラミング体験

コダマのもりブログはにほんブログ村に登録しています。
ブログの記事が役に立ったと感じて頂けたら、フォローお願いいたします。

コメント

タイトルとURLをコピーしました