質問: エクセル保存終了で一時ファイルが残ってしまう。 エクセル保存終了で一時ファイルが残ってしまう。 職場でexcel2003+vbaを利用しています。(自宅ではexcel2002+vbaです) 不特定多数の人が利用している職場で、保存終了後に、拡張子なし英数字名の一時ファイルが残ってしまう場合があります。 理由はファイルが1m以上あり、保存に時間がかかります。砂時計表示中に再度、終了操作をしてしまい、重複して終了処理させてしまう為と思われます。 重複終了操作対策は色々試みています。 (対策案は以前、この場で質問させて頂いています) 消えずに残ってしまった一時ファイルは、私が手作業で削除しています。 vba等で自動削除する方法はありましたら教えて頂きたくお願いします。
回答: >拡張子なし英数字名の一時ファイルの有るフォルダはどうなんでしょうね? フォルダ名は一定で、かつ、フォルダの中のファイルは全て削除しても問題ないなら kill ステートメントはワイルドカードが使えますので kill \\server\are\*.* で消せないかな? 拡張子が無いファイルを全て消してよいなら、getextensionnameは拡張子が分からなければ ""(長さ0の文字列が返される)のでこれを元にkillしてみては? sub test() const trgdir = "c:\" '適宜変更を dim trgfile as string dim objfs as object set objfs = createobject("scripting.filesystemobject") trgfile = dir(trgdir, vbnormal) do while trgfile <> "" debug.print trgfile & "→" & objfs.getextensionname(trgfile) trgfile = dir loop end sub ファイルが使用中の場合には当然エラーが発生しますので、on error ステートメントで調整してください。 これを適当なイベントから呼び出せばよろしいかと。 末尾ながら、一時ファイルを消して対処するのは『臭い物にフタ』のようで・・・。 一時ファイルが出来ない仕組みが出来るといいですね。 追伸 サーバー上のファイルは通常の場合、消すと元に戻せませんのでバックアップは取ってから。 もしくは適当な試験フォルダ・ファイルを作ってからにしてください。