1. ホーム
  2. vba

[解決済み] VBAでファイルを削除する

2022-03-03 07:22:55

質問

VBAを使用して、どのようにすることができます。

  1. ファイルが存在するかどうかをテストし、存在する場合。
  2. 削除しますか?

解決方法は?

1.) チェック こちら . 基本的にはこうしてください。

Function FileExists(ByVal FileToTest As String) As Boolean
   FileExists = (Dir(FileToTest) <> "")
End Function

必要な様々なエラー処理を考えるのはお任せしますが、私が考えているエラー処理には、このようなものがあります。

  • 空文字列が渡されないかチェックする。
  • ファイル名/パスに不正な文字が含まれる文字列がないか確認する

2.) ファイルを削除する方法。 見る これを 基本的にはKillコマンドを使用しますが、ファイルが読み取り専用になる可能性を考慮する必要があります。 ここにそのための関数があります。

Sub DeleteFile(ByVal FileToDelete As String)
   If FileExists(FileToDelete) Then 'See above          
      ' First remove readonly attribute, if set
      SetAttr FileToDelete, vbNormal          
      ' Then delete the file
      Kill FileToDelete
   End If
End Sub

繰り返しになりますが、エラー処理についてはお任せするとして、私が考えるのは以上のようなことです。

  • ディレクトリとファイルでは異なる動作をさせるべきでしょうか? ユーザーは、ディレクトリを削除したいことを明示的に示さなければならないのでしょうか?

  • コードが自動的に読み取り専用属性をリセットすることを望みますか?それとも、読み取り専用属性が設定されていることをユーザーに何らかの形で示すべきですか?


EDIT: この回答をコミュニティWikiとしてマークして、必要であれば誰でも修正できるようにしました。