VBA で RmDir でフォルダが削除できない「ほかの人またはプログラムによって使用されています」「パス名が無効です」
「ほかの人またはプログラムによって使用されています」とか
「パス名が無効です」などとエラーが表示され、
削除することができ無い時の対処法です。
結構泣かされました(´;ω;`)ブワッ
原因 1. Dir 関数がファイルへのアクセスを保持している場合
いくつか txt ファイルが抽出された場合、
なんらかのハンドルがつかまれてしまうようで
参照しなかったファイルにロックがかかってしまいます。これを防ぐにはループを抜けたあとに
TakyuLog/Dir関数での解放
Dir (vbNullString)
を呼び出してやることで解放が行えるようです。
ようするにこういうこと
Dir (vbNullString) ' RmDir を呼び出す前にこいつを実施 RmDir DirectoryPath
原因 2. Excel がカレントディレクトリを指定して保持している場合
Excel のカレントディレクトリで指定されているファイルは、
『フォルダが削除できない』(あん) /Excelの学校
削除できないため...
ChDir ThisWorkbook.Path
Excel のカレントディレクトリとは、「名前をつけて保存」するときに最初に中身が表示されるフォルダのことです。
この場合の対処は、ようするにこういうこと
ChDir ThisWorkbook.Path ' RmDir を呼び出す前にこいつを実施 RmDir DirectoryPath
確認 何が対象のファイルを開いているかを確認する方法
オープンしているファイルを調査する
オープンしているファイルを調査する:Tech TIPS - @IT