VBAのKillでファイルを削除する方法をわかりやすく解説

スポンサーリンク
スポンサーリンク

Killの概要

ファイル削除 VBAの予約語

Kill

概要 Kill ステートメントは、指定したファイルを削除するために使用されます。

わかりやすく説明 Kill は、ファイルを削除するために使用されます。一度実行するとゴミ箱には入らず、完全に削除されるため注意が必要です。

  • 指定されたファイルを削除する。
  • ワイルドカード(* や ?)を使用して複数のファイルを削除可能。
  • フォルダは削除できない(ファイルのみ削除可能)。
  • 削除したファイルはゴミ箱に入らず、完全に削除される。

Killの基本的な使い方

Kill ステートメントを使用すると、特定のファイルを削除できます。

Sub DeleteFile()
    Dim filePath As String
    filePath = "C:\Temp\sample.txt"
    
    ' ファイルが存在するか確認してから削除
    If Dir(filePath) <> "" Then
        Kill filePath
        MsgBox "ファイルを削除しました。", vbInformation, "削除完了"
    Else
        MsgBox "ファイルが見つかりません。", vbExclamation, "エラー"
    End If
End Sub

解説:

  • Kill filePath で指定したファイルを削除します。
  • 削除前に Dir(filePath) を使用して、ファイルの存在を確認しています。
  • 削除が成功すると、メッセージボックスで通知します。

ワイルドカードを使用して複数のファイルを削除

ワイルドカードを使うことで、特定のパターンに一致する複数のファイルを削除できます。

Sub DeleteMultipleFiles()
    Dim filePattern As String
    filePattern = "C:\Temp\*.txt" ' すべてのTXTファイルを削除
    
    ' ワイルドカードを使用して一括削除
    Kill filePattern
    
    MsgBox "すべてのTXTファイルを削除しました。", vbInformation, "削除完了"
End Sub

解説:

  • Kill "C:\Temp\*.txt" を使用すると、C:\Temp フォルダ内のすべての .txt ファイルを削除します。
  • 削除対象のファイルがない場合、エラーは発生しません。

エラーを回避する方法

削除時にエラーを回避するために、エラーハンドリングを追加することを推奨します。

Sub SafeDeleteFile()
    Dim filePath As String
    filePath = "C:\Temp\sample.txt"
    
    On Error Resume Next ' エラーを無視する
    Kill filePath
    
    ' エラーが発生したか確認
    If Err.Number <> 0 Then
        MsgBox "ファイルの削除に失敗しました: " & Err.Description, vbExclamation, "エラー"
        Err.Clear
    Else
        MsgBox "ファイルを削除しました。", vbInformation, "削除完了"
    End If
End Sub

解説:

  • On Error Resume Next を使用し、エラーを無視します。
  • 削除後に Err.Number を確認し、エラーが発生した場合はメッセージを表示します。
  • エラーがなければ、通常通り削除完了のメッセージを表示します。

Killの注意事項

  • 削除したファイルは復元不可: ゴミ箱には入らず完全に削除されます。
  • フォルダは削除できない: Kill ステートメントはファイル専用です。フォルダを削除するには RmDir を使用します。
  • ファイルが開いていると削除できない: 削除対象のファイルが他のプログラムで開かれている場合、エラーが発生します。
  • ワイルドカード使用時の注意: ワイルドカードを使用すると、一度に多くのファイルが削除されるため、慎重に使用してください。

よくある質問

Q: Kill ステートメントで削除したファイルは復元できますか?
A: いいえ。ゴミ箱に入らず完全に削除されるため、復元はできません。
Q: フォルダごと削除できますか?
A: いいえ。Kill はファイル専用です。フォルダを削除するには RmDir を使用します。
Q: 開いているファイルを削除できますか?
A: いいえ。他のプログラムで開いているファイルは削除できません。
Q: ワイルドカードを使うとどのような影響がありますか?
A: 指定した条件に合致するすべてのファイルが削除されるため、誤操作に注意が必要です。

まとめ

  • Kill ステートメントを使うとファイルを削除できる。
  • ワイルドカードを使うと複数のファイルを一括削除できる。
  • 削除したファイルはゴミ箱に入らず、完全に削除される。
  • フォルダの削除には RmDir を使用する。
  • 削除時のエラーを防ぐため、エラーハンドリングを活用する。