3

ExcelシートのデータをCSV形式で保存するマクロを書いています - VBA 2010

すべてが完了した後、マクロの最後に 2 つの問題があります。

1) コマンドで、同じ名前の同じフォルダーにファイルが存在する場合にファイルを上書きすることを保証するActiveWorkbook.SaveAsオプションを使用しました。ConflictResolution:=xlLocalSessionChanges

以下の構文で動作していました

ActiveWorkbook.SaveAs Filename:="C:\File1.xlsx", FileFormat:= _
  xlOpenXMLWorkbook, CreateBackup:=False, ConflictResolution:=xlLocalSessionChanges

また、同名のファイルが存在する場合は上書きしていましたが、このオプションは、たとえばファイルを通常の Excel 形式で保存する場合は機能していましたが、CSV として保存する場合は機能しません。

ただし、以下の構文では機能しません

ActiveWorkbook.SaveAs Filename:="C:\File1.csv", FileFormat:= _
  xlCSV, CreateBackup:=False, ConflictResolution:=xlLocalSessionChanges

「機能していません」とは、既存のファイルを上書きせず、同じ名前のファイルが存在するというメッセージを表示し、ユーザーに上書きするかどうかを尋ねていることです。

これはマクロなので、ユーザーからの干渉は望んでいません。

2) CSV に変換した後、コマンドを使用しActiveWorkbook.Closeてファイルを閉じると、「変更を保存しますか (はい/いいえ)」というメッセージが表示されます。

また、このメッセージを表示せずにファイルをサイレント モードで保存したいと考えています。

4

2 に答える 2

3

最初の部分でApplication.DisplayAlerts = Falseは、SaveAs を実行する直前に追加し、直後に追加しますApplication.DisplayAlerts = True。これにより、上書きメッセージが抑制され、古いファイルが自動的に上書き保存されます。

于 2013-11-08T17:08:22.903 に答える
1

項目2については、これを試してください:

ActiveWorkbook.Close False

問答無用で締め切ります。

ジャイル・バティスタ

于 2013-11-08T16:36:12.347 に答える