使用中?のExcelファイルの削除

■ロックされているのExcelファイルの削除の方法を調べる。
Excelファイルを共有(レガシ)とかで複数人で使用していると、たまに壊れることがある。サーバなどの機能から復元はできるけど、元の壊れたファイルが削除できなければファイルを置き換えることができず、最終的に別ファイルとして更新しなければならない。

コマンドプロンプトから削除できないか少し調べる。

自分のPCでは同じ環境にできないので、とりあえず下記メッセージが出る状況にした上でこのファイルが削除できないかを見てみる。


まず、普通にファイル削除だと次の表示。


次に、コマンドプロンプトから del コマンドの実施。

読み取り専用ファイルを強制的に削除する /F オプションを使っても同様に、「別のプロセスが使用中です。」のメッセージが出る。管理者権限でも同じ。

最後に、プロセス削除した後にファイル削除。
tasklist で動いているプロセスのPIDを取得。下では6268。


taskkill でプロセス削除。


実行中のファイルが終了したので、当然削除はできた。でも、これをやるにはどのPCでExcelが動いているか分かっている必要がある。例えば、上の「使用者は’xxxx’です。」のメッセージで誰か分かれば、その人にプロセスを削除するように連絡すれば解決するかもしれない。

問題は、ほかのユーザですといった表示になっている場合。
ネットで調べると openfiles というコマンドが使えそう。ほかのユーザですと出るのは、共有のサーバ上にあるファイルに皆がアクセスして、何らかのエラーでクライアント側のPCにプロセスが残っている状態だと思う。クライアント側なので上のtasklistをサーバ側で実行しても該当するものは出ないはず。サーバとクライアント間はリモートで接続されているので、Disconnect とかで切断できれば削除できるのではと思う。


このコマンドを試してみると、システムファイルのようないろいろなファイルが出る(前準備として、local をONにして再起動などは行った)。


一番左の数字はIDとなっているが、PIDとは別のもののよう。

環境が違うので、細かくは試さないけど、@ITに該当する記事があった。
ほかのユーザですの状態でもサーバやクライアントのPCを再起動すれば解決するのではないかと思う。1日待つこともできない状態などと限られそうだけど、機会があれば試したい。