• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:「変更を保存しますか?」と聞かれたくない。)

「変更を保存しますか?」と聞かれたくない

このQ&Aのポイント
  • 現在のファイルと同名のCSVファイルを作成したいが、「変更を保存しますか?」と聞かれる問題に直面しています。
  • 保存する方法を教えてください。
  • 無条件で保存したいし、変更していないのになぜ聞かれるのか理解できません。

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

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

エクセルのワークシート画面でCSVファイルをただ閉じる操作をしてみると、保存済みであるか否かを問わずに必ず保存しますかと聞いてきます。状態を保持できるエクセルワークブックと違い、CSVファイルでは「保存された」を保持できません。 簡単な対応: ActiveWorkbook.SaveAs Filename:=MyFileName & ".csv", FileFormat:=xlCSV ActiveWindow.Close savechanges:=false のようにしてみます。 先に一回保存してあるので、保存せずに強制的に閉じます。 #参考 実はsavechanges:=trueにしてもメッセージを出さずに閉じられます。今のマクロでは意味のないことですが。 #別の方法 メッセージの発報を抑制します activeworkbook.saveas filename:=… application.displayalerts = false activeworkbook.close application.displayalerts = true

kashktt
質問者

お礼

ありがとうございます。

その他の回答 (3)

回答No.4

ActiveWindow.Close→ActiveWindow.Close False でOKですよ。

kashktt
質問者

お礼

ありがとうございます。

回答No.3

質問のコードは、たぶん、省略されているとは思うのですが、そのコードでは、空のファイルになるだけのような気がします。「保存」が問われるのは、CSVですと、Excelフォーマット形式の情報が失われてしまうから、どうするか聞いてくるわけですね。 >無条件で保存 ということになると、こちらの解釈ですが、もしも既に同じ名前のファイルがある時は、上書き保存ということですね。私のは少し違う意味ですが、他のみなさんの書いたテクニックで良いと思います。 '// Sub Create_CSV_NewFile()  Dim mName As String  Dim mPath As String  With ActiveWorkbook   mPath = .Path & "\"   mName = .Name   mName = Left(mName, InStr(mName, ".") - 1)  End With  ActiveSheet.Copy  With ActiveWorkbook   Application.DisplayAlerts = False '強制的に上書き保存   .SaveAs mPath & mName & ".csv", FileFormat:=xlCSV   .Close False   Application.DisplayAlerts = True  End With End Sub

kashktt
質問者

お礼

ありがとうございます。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

Workbooks.Add ActiveWorkbook.SaveAs Filename:=MyFileName & ".csv", FileFormat:=xlCSV ActiveWorkbook.Save ActiveWindow.Close End Sub を Workbooks.Add ActiveWorkbook.SaveAs Filename:=MyFileName & ".csv", FileFormat:=xlCSV ’以下1行追加 メッセージ抑止を設定する Application.DisplayAlerts = False ’以下1行コメントアウト ''''ActiveWorkbook.Save ActiveWindow.Close ’以下1行追加 メッセージ抑止を解除する Application.DisplayAlerts = True End Sub でどうでしょう?

kashktt
質問者

お礼

ありがとうございます。