DeleteFileメソッドでファイルを削除する方法と注意点

Excel VBAは、マイクロソフトが提供するVisual Basic for Applicationsの機能を使用して、Excelの操作を自動化することができます。
その中でも、DeleteFileメソッドは、指定したパスのファイルを削除するための非常に便利な機能です。
本記事では、Excel VBAのDeleteFileメソッドの使い方を詳しく解説します。

DeleteFileメソッドとは

DeleteFileメソッドは、FileSystemObjectオブジェクトを使用してファイルを削除するためのメソッドです。
FileSystemObjectオブジェクトは、ファイルやフォルダなどのファイルシステムオブジェクトを扱うためのオブジェクトであり、DeleteFileメソッドは、このオブジェクトが提供するファイルを削除するための機能です。

DeleteFileメソッドの書式

DeleteFileメソッドの書式は以下の通りです。

ここで、引数の説明は以下の通りです。

  • FileSpec: 削除するファイルのパスを指定します。必ず指定する必要があります。
  • Force: 削除するファイルが読み取り専用の場合でも削除するかどうかを指定します。省略可能です。

DeleteFileメソッドの使用例

DeleteFileメソッドの使用例を示します。以下のコードは、”C:\test.txt”というパスにあるファイルを削除する例です。

このコードを実行すると、指定されたパスにあるファイルが削除されます。もし、削除するファイルが読み取り専用の場合でも削除したい場合は、ForceパラメータをTrueに設定します。

注意点

DeleteFileメソッドを使用する際には、以下の注意点に気を付ける必要があります。

  • ファイルを削除する前に、削除するファイルが存在するかどうかを確認してください。
  • ファイルを削除する前に、削除するファイルが使用中でないことを確認してください。
  • ファイルを削除する前に、削除するファイルがアクセス制限などによって削除できない可能性があるため、エラー処理を行うことをおすすめします。

まとめ

Excel VBAのDeleteFileメソッドは、ファイルを削除するための非常に便利な機能です。FileSystemObjectオブジェクトを使用してファイルを削除することができ、パスを指定するだけで簡単にファイルを削除することができます。
ただし、ファイルが存在するか、使用中でないかなどの確認を行った上で、エラー処理を行うことをおすすめします。

サンプルコード

指定した拡張子を持つファイルを削除する

以下のコードは、指定したフォルダ内にある、指定した拡張子を持つファイルをすべて削除する例です。

このVBAコードは、指定されたフォルダ内のすべてのファイルのうち、指定された拡張子を持つファイルを削除するためのものです。

具体的には、FileSystemObjectオブジェクトを使用して、フォルダ内のすべてのファイルを取得し、ファイルの拡張子を確認して、指定された拡張子を持つファイルだけを削除しています。

たとえば、上記のコードでは、C:\MyFolder\ フォルダ内にある、拡張子が .txt のファイルを削除しています。このような操作は、例えば、あるフォルダ内にある古いログファイルを一括で削除する場合などに有効です。

特定の日付よりも古いファイルを削除する

以下のコードは、指定したフォルダ内にある、特定の日付よりも古いファイルをすべて削除する例です。


このVBAコードは、指定したフォルダ内にある、特定の日付よりも古いファイルをすべて削除することができます。以下が、具体的な機能についての説明です。

  • FileSystemObjectオブジェクトを使用して、指定したフォルダ内のファイルを操作できます。
  • Date - 30を使用して、現在の日付から30日前の日付を設定できます。
  • file.DateLastModifiedを使用して、ファイルの最終更新日を取得できます。
  • fso.DeleteFileを使用して、ファイルを削除できます。

このVBAコードを使用することで、30日以上経過したファイルを一括で削除することができ、ファイル整理の効率化が図れます。

コメント