Hallo computer-glossar.de,
mit WBobj.saved:= FALSE wird EXCEL vorgespielt, dass es noch nicht gespeicherte Änderungen gibt. Mit SaveChanges muss auf TRUE gesetzt werden, sonst werden die Änderungen im WorkBook nicht abgespeichert. Mit Excel.DisplayAlerts := FALSE; währe ich sehr vorsichtig. Man sollt die Rückfragen auch wieder vor dem Verlassen zurückstellen, weil alle Rückfragen ausgestellt werden!
Wenn man Excel.DisplayAlerts := FALSE; benutzt sollte man es so anwenden:
Delphi-Quellcode:
{-------------------------------------------------------------------------------
Funktion: EXCELOhneNachFragenSchliessen()
Bemerkung: Mit dieser Function wird das neu aktive WorkBook unter den unter
DateiName angegeben Namen abgespeichert. Dabei wird die Rückfrage
"Sollen Ihre Änderungen in <Datei> gespeichert werden?" erscheint
immer, wenn eine Arbeitsmappe geschlossen wird, welche nicht
gespeicherte Änderungen enthält unterdrückt. Die Datei wird immer
abgespeichert, auch wenn diese keine Änderung enthält.
Parameter: m_Excel :Variant // Ist die Excel-Apllication-Variable.
WorkBobj:olevariant // Ist die Aktuelle Workbook-Variable.
DateiName: String // Ist der komplette Path mit Laufwerk, Path
// und DateiName.
Functions-Wert: = TRUE // alles Klar die Datei ist normal abgespeichert
// worden.
= FALSE // Es ist beim Abspeichern ein Fehler aufgetreten.
Version: 1.01
letz.Ändr.: 12.05.2006
-------------------------------------------------------------------------------}
function EXCELOhneNachFragenSchliessen(m_Excel: Variant; WorkBobj: olevariant;
const DateiName: String): Boolean;
begin
Result:= FALSE;
m_Excel.Application.DisplayAlerts := False; // Alle Rückfragen ausstellen
try
WorkBobj.saved := FALSE;
WorkBobj.Close (saveChanges:=TRUE, FileName:=DateiName);
Result:= TRUE; // Alles OK dann wird TRUE zurückgegeben.
finally
m_Excel.Application.DisplayAlerts := TRUE; // Alle Rückfragen anstellen
m_Excel.Quit;
end;
end;
Wenn dann ein Fehler auftritt, weil der Path oder die Laufwerk Angaben nicht stimmen, werden die Rückfragen wieder angezeigt.
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.