Forum: PC-Programmierung EXCEL Process beenden VB


von Sebastian (Gast)


Lesenswert?

Hallo,

ich habe für eine Messwertaufnahme ein VisualBasic Programm geschrieben, 
welches alle Messpunkt schön in eine Excel Datei ablegt. Funktioniert 
sehr gut. Allerdings habe ich jetzt festgestellt unter dem Windows Task 
Manager, dass EXCEL immer noch aktiv ist obwohl ich es vermeindlich über 
mein Programm beendet habe.

Die Funktion oExcel.Quit funktioniert nicht richtig. Excel geht zwar zu, 
verschwindet aber nicht aus dem Task Mangaer. Kennt da jemand eine 
bessere Funktion? Oder was mache ich falsch.

Danke schon mal,
Sebastian

von Wolfram (Gast)


Lesenswert?

Gib alle ExcelObject frei.

von Sebastian (Gast)


Lesenswert?

Meine prinzipielle vorgehensweise:


Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object


oExcel = CreateObject("Excel.Application")
oBook = oExcel.Workbooks.Add
oSheet = oBook.Worksheets(1)


oExcel.Quit


Für die Objekte oExcel und oSheet gibt es keine Quit Funktion. Wie soll 
ich die also freigeben?




von Wolfram (Gast)


Lesenswert?

So wie man das immer in VB mit Objekten machen sollte, die man nicht 
mehr braucht mit Nothing.

von Stefan Wakolbinger (Gast)


Lesenswert?

probier mal:
        'Prozess schliessen
        Dim Anwendung As String
        Anwendung = "excel"
        Dim pList() As System.Diagnostics.Process = _
    System.Diagnostics.Process.GetProcessesByName(Anwendung)
        For Each proc As System.Diagnostics.Process In pList
            Dim resp As MsgBoxResult
            resp = MsgBox("Terminate " & proc.ProcessName & "?", _
                MsgBoxStyle.YesNo, "Terminate?")
            If resp = MsgBoxResult.Yes Then
                proc.Kill()
            End If
        Next

du kannst auch die Msgbox()-Abfrage weglassen und gleich alle excel 
prozesse beenden. Beendet wirklich alle Excel Anwendungen!!

oder die alternative:

'Variablen
dim excelapp as Excel.Application
dim excelworkbook as Excel.Workbook = 
excelapp.Workbooks.open("DEIN_PFAD")

'Speichern
for each workb as Excel.Workbooks In excelapp.Workbooks()
workb.Save()
next

'Schließen
for each workb as Excel.Workbooks In excelapp.Workbooks()
workb.Close()
next

mfg
Stefan Wakolbinger

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.