このセクションのコードでは、Excelは常に「ファイルは既に存在します。上書きしますか?」というプロンプトを出します。
Application.DisplayAlerts = False
Set xls = CreateObject("Excel.Application")
Set wb = xls.Workbooks.Add
fullFilePath = importFolderPath & "\" & "A.xlsx"
wb.SaveAs fullFilePath, AccessMode:=xlExclusive, ConflictResolution:=True
wb.Close(True)
db.SaveAs
を持っている場合、DisplayAlerts = False
が常に既存のファイルを上書きするように要求するのはなぜですか?
前もって感謝します!
プロンプトセットを表示しない場合xls.DisplayAlerts = False
ConflictResolution
はtrueまたはfalseのプロパティではありません。xlLocalSessionChanges
である必要があります-これは上書きプロンプトの表示とは関係ありません。
Set xls = CreateObject("Excel.Application")
xls.DisplayAlerts = False
Set wb = xls.Workbooks.Add
fullFilePath = importFolderPath & "\" & "A.xlsx"
wb.SaveAs fullFilePath, AccessMode:=xlExclusive,ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges
wb.Close (True)
SaveAsを実行する前に、存在するファイルを削除することをお勧めします。
If Dir("f:ull\path\with\filename.xls") <> "" Then
Kill "f:ull\path\with\filename.xls"
End If
DisplayAlertsをオフおよびオンに設定するよりも簡単です。さらに、コードクラッシュが原因でDisplayAlertsがオフのままである場合、同じセッションでExcelを操作すると問題が発生する可能性があります。
意見の違いを分けるために
私が好む:
xls.DisplayAlerts = False
wb.SaveAs fullFilePath, AccessMode:=xlExclusive, ConflictResolution:=True
xls.DisplayAlerts = True
..