VBAでファイルを削除

Iqra Hasnain 2023年6月21日
  1. VBAでファイルを削除
  2. VBA で単一のファイルを削除する
  3. VBA ですべてのテキスト ファイルを削除する
  4. VBA ですべての Excel ファイルを削除する
  5. VBAでフォルダを削除する
VBAでファイルを削除

VBA を使用してファイルを削除するさまざまな方法を例を挙げて紹介します。

VBAでファイルを削除

すべてのユーザーがプロセス中に中間ファイルを持つのは普通のことですが、それらのファイルはプロセスの完了後に削除する必要があります。 たとえば、ファイルが添付されたメールをよく受け取ります。

これらのファイルは、ファイルの作業が必要な場合にのみ有益です。

これらのファイルは、システムのパフォーマンスを低下させる可能性があるコンピューター (またはドライブ) の余分なスペースを占有するため、しばらくしてから削除する必要があります。

これらの余分なファイルを手動で削除しようとすると、時間がかかります。 複数のセッションで中間ファイルを削除することを決定した場合、そのようなファイルの削除を忘れることさえあります。

これらの余分なファイルを削除するには、単純な VBA コードを使用できます。

いくつかのコードは、ファイルを削除するためのさまざまな方法論を扱っています。 主なコードのいくつかは次のとおりです。

  1. VBA を使用して単一のファイルを削除します。
  2. VBA を使用してすべてのテキスト ファイルを削除します。
  3. VBA を使用してすべての Excel ファイルを削除します。
  4. VBA を使用してフォルダー全体を削除します。

VBA で単一のファイルを削除する

Excel ファイルを削除するには、2つの方法があります。 1つは、FileSystemObject と呼ばれる Kill 関数です。

例を見て、Kill 関数を使用して 1つのファイルを削除してみましょう。

Sub DeleteFileWithKill()

Kill("D:/Test/testFile.xlsx")

End Sub

コードを実行する前に:

vba で kill 関数を使用して単一のファイルを削除する前

コードを実行した後:

vba で kill 関数を使用して単一のファイルを削除した後

上記の例からわかるように、kill 関数を使用してファイルを削除するのは非常に簡単です。

FileSystemObject メソッドでは、最初に変数を宣言し、オブジェクト関数を作成し、ファイルのパスを割り当て、次に DeleteFile 関数を使用します。 完全なコードを以下に示します。

Sub DeleteFileWithFSO()

Dim FileSysObj

Dim FileToDel As String

Set FileSysObj = CreateObject("Scripting.FileSystemObject")

FileToDel = "D:\Test\testFile.xlsx"

FileSysObj.DeleteFile FileToDel, True

End Sub

FileSystemObject メソッドを実行する前に:

vba で kill 関数を使用して単一のファイルを削除する前

FileSystemObject メソッドを実行した後:

vba で kill 関数を使用して単一のファイルを削除した後

ファイルの存在を確認してから削除する場合の VBA コードは次のとおりです。

Sub DeleteFileAfterChecking()

Dim FileSysObj

Dim FileToDelete As String

Set FileSysObj = CreateObject("Scripting.FileSystemObject")

FileToDelete = "D:\Test\testFile.xlsx"

If FileSysObj.FileExists(FileToDelete) Then

FileSysObj.DeleteFile FileToDelete, True
MsgBox "File Deleted"

Else
MsgBox "There is no file with the name you provided!"

End If
End Sub

出力:

vbaでファイルの有無を確認して削除

上記の例からわかるように、FileSystemObject を使用することで、ファイルが存在する場合にファイルを確実に削除することもできます。 存在しない場合は、ファイルが存在しないというメッセージを表示できます。

VBA ですべてのテキスト ファイルを削除する

VBA を使用して、.txt などの特定の拡張子のすべてのファイルを削除することもできます。 以下に示すように、例を見て、特定のフォルダーにあるすべての .txt ファイルを削除してみましょう。

Sub DeleteTxtFile()
Kill "D:\Test\Dst\*.txt"
End Sub

コードを実行する前の出力:

vba で kill 関数を使用してすべてのテキスト ファイルを削除する前に

コード実行後の出力:

vba で kill 関数を使用してすべてのテキスト ファイルを削除した後

VBA ですべての Excel ファイルを削除する

VBA を使用して、.xlsx などの特定の拡張子のすべてのファイルを削除することもできます。 以下に示すように、例を見て、特定のフォルダーにあるすべての .xlsx ファイルを削除してみましょう。

Sub DeleteXlFile()
Kill "D:\Test\Dst\*.xlsx"
End Sub

コードを実行する前の出力:

vba で kill 関数を使用してすべてのテキスト ファイルを削除した後

コード実行後の出力:

vba で kill 関数を使用してすべての Excel ファイルを削除した後

VBAでフォルダを削除する

VBA は、フォルダー全体を削除するソリューションを提供します。 フォルダ全体を削除するには、RmDir という関数を使用します。

以下に示すように、例を見て、フォルダー全体を削除してみましょう。

Sub DeleteFolder()

RmDir "D:\Test\Dst\"

End Sub

コードを実行する前の出力:

vba で kill 関数を使用して単一のファイルを削除した後

コード実行後の出力:

vbaでフォルダを削除した後

関連記事 - VBA File