Nur selbst geöffnetes Excel wieder schliessen?
-
Hallo,
mit folgendem Code öffne ich Excel und schreibe in eine Zelle ein Text. Dann schließe ich das Excel wieder.
TExcelApplication *ExAp; TExcelWorkbook *WB; TExcelWorksheet *WS; ExAp = new TExcelApplication(NULL); WB = new TExcelWorkbook(NULL); WS = new TExcelWorksheet(NULL); Variant vSave, vFile, vRoute, vRow, vCol, vText; LONG wbID; wbID = 0; ExAp->Connect(); //mit Excel verbinden ExAp->set_Visible(0,1); //Excel sichtbar öffnen ExAp->Workbooks->Add(); //ein neues Workbook hinzufügen WB->ConnectTo(ExAp->ActiveWorkbook); //Workbook verbinden WS->ConnectTo(WB->ActiveSheet); //Worksheet mit Workbook verbinden WS->Cells->set__Default(vRow=1,vCol=1,vText="Test"); //in die Zelle A1 Test schreiben WB->Close(vSave=false,vFile,vRoute=false,wbID); //Workbook ungespeichert wieder schliessen ExAp->Disconnect(); //Excel trennen ExAp->Quit(); //Excel wieder schliessen delete WS; delete WB; delete ExAp;
Der Code schliesst das Excel grundsätzlich. Sollte vor der Ausführung meines Codes schon ein Excel geöffnet sein, so wird dieses auch geschlossen.
Wie bekomme ich es jetzt aber hin, nur das selbst von mir geöffnete Excel wieder zu schliessen und alle anderen, evtl. bereits geöffneten Excel, geöffnet zu lassen?
-
Hallo Ralf,
da hatte ich mal etwas vor einiger Zeit
Es sit so, dass jedes Programm, das gestartet wird, vom System eine ProzessID zugewiesen bekommt. Diese ist eindeutig. Diese kann man sich beim "Create-Prozess" auslesen und später darüber wieder schließen.
Vieleicht hilfts ja...
Gruß Torsten