So, mal deinen Quellcode überarbeitet
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
oExcel: OLEVariant;
oWB1: OLEVariant;
oWS1: OLEVariant;
oWS2: OLEVariant;
begin
try
oExcel := CreateOleObject('Excel.Application');
except
ShowMessage('Microsoft Excel kann nicht starten.');
exit;
end;
if (NOT VarIsEmpty(oExcel)) then // Excel gestartet ?
begin
try
oExcel.Visible:= TRUE; // Excel anzeigen
oWB1:=oExcel.Workbooks.add; // Workbook anlegen
if (NOT VarIsEmpty(oWB1)) then // Workbook angelegt ?
begin
// Wir legen mal ein neues Sheet an, es soll vor den ersten Sheet eingefügt
// werden
oWS1:= oWB1.Worksheets.add(oWB1.WorkSheets[1]);
if (NOT VarIsEmpty(oWS1)) then
begin
oWS1.Name:= 'Erste Blatt';
oWS2:= oWB1.Worksheets[2];
oWS2.Name:= 'Zweites Blatt';
oWS2.activate;
ShowMessage('Blatt 2 aktiviert');
oWS1.activate;
ShowMessage('Blatt 1 aktiviert');
oWS1.Delete; // Wir löschen das neue Sheet
ShowMessage('Blatt 1 gelöscht');
end;
oWS1:= Unassigned;
oWS2:= Unassigned;
// Workbook schliesssen
oWB1.Saved := TRUE; // ohne Nachfragen
oWB1.Close;
oWB1:= Unassigned;
end;
finally
// Excel schliessen
oExcel.Quit;
oExcel:= Unassigned;
end;
end;
end;
das Before:= kann auch weggelassen werden, da 'Before' der erste Parameter von Sheet.Add ist...
Somit auch keine Fehlermeldungen...
Durch die vielen (NOT VarIsEmpty( wurde es etwas unübersichtlich..