概要

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関数はファイルのみを削除でき、フォルダの削除には使用できません。フォルダを削除する場合は、FileSystemObjectDeleteFolderメソッドを使用する必要があります。

  • 復元不可

    Kill関数で削除したファイルはゴミ箱に入らないため、削除後の復元はできません。削除が必要かどうかを事前に十分に確認したうえで使用することが重要です。

Kill関数は、VBAを使ったファイル操作の中でも強力な機能を持つ関数の一つです。効率的にファイル管理を行いたい場合には非常に便利ですが、その反面、操作を誤るとデータ損失のリスクがあるため、慎重に扱う必要があります。