VBAでファイルを削除
VBA を使用してファイルを削除するさまざまな方法を例を挙げて紹介します。
VBAでファイルを削除
すべてのユーザーがプロセス中に中間ファイルを持つのは普通のことですが、それらのファイルはプロセスの完了後に削除する必要があります。 たとえば、ファイルが添付されたメールをよく受け取ります。
これらのファイルは、ファイルの作業が必要な場合にのみ有益です。
これらのファイルは、システムのパフォーマンスを低下させる可能性があるコンピューター (またはドライブ) の余分なスペースを占有するため、しばらくしてから削除する必要があります。
これらの余分なファイルを手動で削除しようとすると、時間がかかります。 複数のセッションで中間ファイルを削除することを決定した場合、そのようなファイルの削除を忘れることさえあります。
これらの余分なファイルを削除するには、単純な VBA コードを使用できます。
いくつかのコードは、ファイルを削除するためのさまざまな方法論を扱っています。 主なコードのいくつかは次のとおりです。
- VBA を使用して単一のファイルを削除します。
- VBA を使用してすべてのテキスト ファイルを削除します。
- VBA を使用してすべての Excel ファイルを削除します。
- VBA を使用してフォルダー全体を削除します。
VBA で単一のファイルを削除する
Excel ファイルを削除するには、2つの方法があります。 1つは、FileSystemObject
と呼ばれる Kill
関数です。
例を見て、Kill
関数を使用して 1つのファイルを削除してみましょう。
Sub DeleteFileWithKill()
Kill("D:/Test/testFile.xlsx")
End Sub
コードを実行する前に:
コードを実行した後:
上記の例からわかるように、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
メソッドを実行する前に:
FileSystemObject
メソッドを実行した後:
ファイルの存在を確認してから削除する場合の 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
出力:
上記の例からわかるように、FileSystemObject
を使用することで、ファイルが存在する場合にファイルを確実に削除することもできます。 存在しない場合は、ファイルが存在しないというメッセージを表示できます。
VBA ですべてのテキスト ファイルを削除する
VBA を使用して、.txt
などの特定の拡張子のすべてのファイルを削除することもできます。 以下に示すように、例を見て、特定のフォルダーにあるすべての .txt
ファイルを削除してみましょう。
Sub DeleteTxtFile()
Kill "D:\Test\Dst\*.txt"
End Sub
コードを実行する前の出力:
コード実行後の出力:
VBA ですべての Excel ファイルを削除する
VBA を使用して、.xlsx
などの特定の拡張子のすべてのファイルを削除することもできます。 以下に示すように、例を見て、特定のフォルダーにあるすべての .xlsx
ファイルを削除してみましょう。
Sub DeleteXlFile()
Kill "D:\Test\Dst\*.xlsx"
End Sub
コードを実行する前の出力:
コード実行後の出力:
VBAでフォルダを削除する
VBA は、フォルダー全体を削除するソリューションを提供します。 フォルダ全体を削除するには、RmDir
という関数を使用します。
以下に示すように、例を見て、フォルダー全体を削除してみましょう。
Sub DeleteFolder()
RmDir "D:\Test\Dst\"
End Sub
コードを実行する前の出力:
コード実行後の出力: