• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelマクロ テキスト出力すると上書きが不可)

Excelマクロでテキストを出力する際の上書き問題と回避方法

このQ&Aのポイント
  • Excelマクロでシートのデータをテキストファイルに出力する方法について説明します。
  • しかし、テキストを上書き保存や削除する際にエラーが発生する場合があります。
  • この問題を解消するための回避方法として、一度Excelを閉じて再度開くという手順がありますが、他にも解決策があるかもしれません。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>その後はExcelやVisual Basic Editorを上書き保存できなくなり、 どのファイルに対して「上書き保存」したかったのですか? ご質問で書かれたマクロを実行した後,ワークシート画面でタイトルバーにある「今現在のブック名」をよく見てみると,マクロで保存した 下書き.txt と表示が出ているのを確認することが出来ます。 その状態からいきなり「上書き保存」すれば,それは現在のブックを「下書き.txtに上書き保存しようとしている」操作になります。 演習: マクロを離れて,なにかてきとーなサンプルブックを用意します。 手動操作で,ファイルメニューから名前を付けて保存で,ファイルの種類を「テキスト(タブ区切り)(*.txt)」に変えて保存します すると,ご質問で書かれているメッセージが必ず出ます。 OKして一度保存した後,改めて上書き保存を試みると,なんどでも同じメッセージが必ず繰り返し表示されます。 名前を付けて保存でファイルの種類を「Excelブック(*.xls)」に変えて改めて保存し直すと,もうメッセージは出なくなります。 対処: そこで,最初にお聞きした通りあなたは一体「どのファイルに対して上書き保存をしたかったのか」という所に戻ります。 マクロを実行する前にブックが「Book1.xls」の状態だったとするならば,主な対処としては次のいずれかになります。 1)改めてブックをBook1.xlsとして名前を付けて保存し直す 2)「先に」ブックをオリジナルブックファイルBook1.xlsに「上書き保存」しておく  そのあと,マクロで触っているシートを下書き.txtで保存し,もう「上書き保存はしない」でブックは捨ててしまう 3)【推奨】目的のシート1枚を,別ブックのカタチで複写する  そのブック(シート1枚)を「下書き.txt」として名前を付けて保存する  「下書き.txt」はそのまま閉じて終わらせてしまう サンプル: application.displayalerts = false activesheet.copy activeworkbook.saveas Filename:="保存先フォルダ\下書き.txt", _ FileFormat:=xlCurrentPlatformText activeworkbook.close false application.displayalerts = true そして続きの >更には出力したテキストファイルも削除できなくなってしまいました こちらも,上述したように現在のブックが「下書き.txt」としてエクセル上に確かに開きっぱなしだからです。 エクセル上で「下書き.txt」を閉じてしまえば,自ずから問題も解消します。

cmd0
質問者

お礼

回答ありがとうございます! ブックが保存したファイルに置き換えられている?とは想像もしていませんでした。 無事に解決いたしました。 改めてありがとうございました。

関連するQ&A