概要
Kill
関数は、Excel VBAで指定したファイルを削除するための関数です。この関数を使用することで、手動で削除する手間を省き、スクリプトによるファイル管理を簡素化できます。削除の対象はファイルのみで、フォルダの削除には別の方法が必要です。
構文
Kill パス
パラメータ
-
パス
削除対象のファイルのパスを指定します。ワイルドカード文字(
*
や?
)を使用して複数のファイルを指定することも可能です。
戻り値
この関数には戻り値はありません。指定されたファイルを削除するだけです。削除が成功すると、ファイルは完全に削除され、ゴミ箱にも残りません。
説明
Kill
関数は、指定したファイルをシステムから完全に削除します。このため、削除したファイルは復元することができません。慎重に使用することが求められます。たとえば、一時ファイルや不要なデータファイルを定期的に削除する用途に適しています。
-
シンプルな削除操作
単一のファイルや特定の拡張子を持つ複数のファイルをまとめて削除する場合に便利です。
-
注意点
削除対象のファイルが開かれている場合や、アクセス権限がない場合はエラーが発生します。また、ワイルドカードを使用した場合、該当するすべてのファイルが削除されるため、ファイル名の指定には注意が必要です。
使用例
基本的な使用例 - 単一ファイルの削除
Sub DeleteSingleFile()
Dim filePath As String
filePath = "C:\Users\Username\Documents\sample.txt"
' ファイルを削除
Kill filePath
MsgBox "ファイルが削除されました。"
End Sub
ワイルドカードを使用した複数ファイルの削除
Sub DeleteMultipleFiles()
Dim filePattern As String
filePattern = "C:\Users\Username\Documents\*.txt"
' .txt拡張子のすべてのファイルを削除
Kill filePattern
MsgBox ".txtファイルがすべて削除されました。"
End Sub
ファイルが存在する場合のみ削除する
Sub DeleteFileIfExists()
Dim filePath As String
filePath = "C:\Users\Username\Documents\sample.txt"
' ファイルが存在するか確認してから削除
If Dir(filePath) <> "" Then
Kill filePath
MsgBox "ファイルが削除されました。"
Else
MsgBox "削除するファイルが見つかりません。"
End If
End Sub
削除中にエラーが発生した場合のエラーハンドリング
Sub DeleteFileWithErrorHandling()
Dim filePath As String
filePath = "C:\Users\Username\Documents\sample.txt"
On Error GoTo ErrorHandler
Kill filePath
MsgBox "ファイルが削除されました。"
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しました: " & Err.Description
End Sub
備考
-
エラー処理
Kill
関数を使用する際、ファイルが使用中である場合や、削除する権限がない場合、またはファイルが存在しない場合にエラーが発生します。このため、エラーハンドリングを適切に行うことが推奨されます。 -
フォルダの削除は不可
Kill
関数はファイルのみを削除でき、フォルダの削除には使用できません。フォルダを削除する場合は、FileSystemObject
のDeleteFolder
メソッドを使用する必要があります。 -
復元不可
Kill
関数で削除したファイルはゴミ箱に入らないため、削除後の復元はできません。削除が必要かどうかを事前に十分に確認したうえで使用することが重要です。
Kill
関数は、VBAを使ったファイル操作の中でも強力な機能を持つ関数の一つです。効率的にファイル管理を行いたい場合には非常に便利ですが、その反面、操作を誤るとデータ損失のリスクがあるため、慎重に扱う必要があります。