- ベストアンサー
Excel「テキストファイルのインポート」
Excelの「テキストファイルのインポート」によってテキストファイル(仮に「a.txt」)をワークシート上に読み込んだ状態で、「a.txt」を削除しようとすると、「ファイルが開かれているため削除できない」旨のエラーメッセージが表示されます。 このとき、Excel上では「a.txt」が開かれていることは確認できませんが、マクロを使うなどの手段を用いると「a.txt」を閉じることはできるのでしょうか? 「a.txt」をインポートしたファイルを保存してしまえばいいことはわかっているのですが、あくまでインポートした直後の状態で「a.txt」を削除する手段を探しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>Excelの「テキストファイルのインポート」 ですよね。 インポートが終了すれば元ファイルを開いているわけではないので削除できるはずです。 「テキストファイルのインポート」 「元ファイルの削除」 とも手作業ですか? それともマクロ処理してますか? マクロの場合はコードを提示してみてください。 また、Excelのバージョンは何でしょう?
その他の回答 (2)
- ihyou_P
- ベストアンサー率35% (50/141)
こちらの使用環境はエクセル2003です。 削除できないということですので、現在、「ファイル→開く」を使用されているのではないかと思います。 Workbooks.OpenText Filename:= ~~~~~ これだと「インポートしている」というより、「テキストファイルをエクセルで開いている」という感じでしょうか。 (でも更新は不可なんですが) ツールバーの、「データ」から「外部データの取り込み」→「データの取り込み」を使用すれば、インポート後、元のテキストファイルの削除は可能です。 With ActiveSheet.QueryTables.Add(Connection:="TEXT; ~~~~
お礼
ありがとうございました。 お礼が遅くなって申し訳ありませんでした。
- いけだ ひろし(@ike-2000)
- ベストアンサー率53% (69/129)
テキスト内容だけが欲しいのでしょうか?。 「あくまでインポートした直後の状態で「a.txt」を削除する手段」では有りませんが (1)a.txtを開く。 (2)a.txtの内容を別シートにコピーする。 (3)a.txtを閉じる。 ではいかがでしょうか。
お礼
ありがとうございました。 お礼が遅くなって申し訳ありませんでした。
お礼
ありがとうございました。 実は、単純な思い違いが原因でした。おっしゃるように、マクロで Excel にテキストファイルをインポートするだけなら、そのままテキストファイルを削除するのは問題なくできます。 もともと、様々な「セルの表示形式」の設定されたシートを CSV 形式に書き出してプレーンなテキストにしたい、という目的でマクロを書き始めた(Excel 2003 VBA)のですが、どうせならもとのシートの隣にテキスト化されたシートが並んでいると都合がいいと考えて、(1)「A」シートを CSV に書き出す、(2)書き出したばかりの CSV ファイルを「テキストファイルのインポート」(「With ActiveSheet.QueryTables.Add(Connection:="TEXT;……」)で新規シートに読み込む、(3)読み込んだシートの名前を「A_text」にする、(4)書き出した CSV ファイルを「Kill……」で削除する、というところまでを一連のマクロにしようとしていたのです。 質問の中にも書きましたが、(2)まで終わったところで「ActiveWorkbook.SaveAs……」で「.xls」形式でファイルを保存することで問題は解決しています(これをやらないと自分自身を削除しようとしていることになるんですよね?)。 なお、どういうわけか質問を書き込んだ環境ではどうしてもお礼・補足の入力ができない(入力欄をクリックしても入力フォームが出て来ない)状態が続いていて、やむを得ず別の環境から書き込んでいます。お礼が遅くなって申し訳ありませんでした。