← コード一覧へ戻る
実務ファイル

ファイルを削除する

確認後、指定した通常のファイル1つを完全に削除します。ごみ箱には入りません。

実行前に確認

  • Windows専用の例です。C:\Dataは例なので、自分で用意した練習用フォルダーの絶対パスに変更してください。
  • Killによる削除はごみ箱から復元できません。*や?をパスへ入れないでください。属性の保護は自動解除しません。

1サンプルコード

Sub Example4007()
    On Error GoTo Failed
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim filePath As String
    filePath = "C:\Data\sample.txt"
    If Not fso.FileExists(filePath) Then
        MsgBox "ファイルがありません: " & filePath
        Exit Sub
    End If
    If (GetAttr(filePath) And (vbReadOnly Or vbHidden Or vbSystem)) <> 0 Then
        MsgBox "読み取り専用・隠し・システム属性のファイルはこの例では削除しません"
        Exit Sub
    End If
    If MsgBox(filePath & vbCrLf & "この1ファイルを完全に削除します。続けますか?", _
        vbYesNo + vbExclamation + vbDefaultButton2) <> vbYes Then Exit Sub
    Kill filePath
    MsgBox "削除しました"
    Exit Sub
Failed:
    MsgBox "処理を中止しました: " & Err.Description
End Sub

図で見るファイルの変化

イメージ図

概念図:1つのテストファイルを完全に削除する流れです。

  1. 変更前

    C:\Data\sample.txt がある 別の場所にバックアップ済み

  2. マクロ:保護確認

    存在と属性を調べる

  3. 手動:承認

    完全削除の確認で対象パスを読み[はい]

  4. 変更後

    C:\Data\sample.txt はなくなる ごみ箱には入らない

[いいえ]なら変更なし。未存在・読み取り専用・隠し・システム属性なら中止。削除はごみ箱から復元できず、*や?は使いません。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。

  2. 2

    不要なテストファイルを用意して別の場所へバックアップし、filePathをそのテストファイルの絶対パスへ変更します。

  3. 3

    実行するSubの内側にカーソルを置き、F5キーを押します。 表示された絶対パスを読み、削除してよいテストファイルの場合だけ[はい]を押します。

  4. 4

    [はい]ならその1ファイルが完全に削除され、ごみ箱には入りません。[いいえ]なら変更されません。保護対象の属性がある場合は中止します。

使っている機能の公式ドキュメント(Microsoft Learn)