Microsoft Excel

Herbers Excel/VBA-Archiv

PowerPoint wird durch mein Programm geschlossen

Betrifft: PowerPoint wird durch mein Programm geschlossen von: ela
Geschrieben am: 12.08.2014 08:29:51

Hallo,

ich habe ein Tool programmiert welches Dateien mehreren verschiedenen Ordnern in einen gemeinsamen kopiert. Dabei gebe ich den Dateein Metadaten mit, weswegen mein Programm jede Datei öffnet, metadaten übergibt, sie speichert und anschließend wieder schließt und dann kopiert.

Nun habe ich dazu bei PowerPoint Dateien ein Objekt erzeugt. Was am Ende des Programms geschlossen wird. Dabei schließt es mir jedoch leider nicht nur die PowerPoint Datei welche kopiert werden soll, sondern auch andere PowerPointPräsentationen die ich gerade nebenbei offen habe, ohne diese zu speichern...

Hier der Code:

Dim objPPApp As Object ' PowerPoint Application
Dim objPPFile As Object ' PowerPoint Document

Set objPPApp = CreateObject("PowerPoint.Application")

Set objPPFile = objPPApp.Presentations.Open(Quellpfad)

'code

objPPFile.Save
objPPFile.Close

objPPApp.Quit

Set objPPApp = Nothing

Was kann ich an dem Code verändern, dass es mir die nebenbei geöffneten PowerPoint Dateien nicht einfach schließt? Bzw. wenigstens danach fragt ob ich diese speichern will?

Viele grüße
Ela

  

Betrifft: AW: PowerPoint wird durch mein Programm geschlossen von: Daniel
Geschrieben am: 12.08.2014 10:21:02

Hi

objPPApp.Quit

beendet Powerpoint.
Lasse diesen Befehl einfach weg.

Gruß Daniel


  

Betrifft: AW: PowerPoint wird durch mein Programm geschlossen von: fcs
Geschrieben am: 12.08.2014 10:35:38

Hallo Ela,


PowerPoint muss man eigentlich nicht nach jedem Dokument schließen, da -anders als bei Word- keine weiteren Application-Objekte generiert werden, sondern auf eine bereits geöffnete Anwendung zugegriffen wird.

Um zufällig noch geöffnete Präsentation zu retten, wenn das Makro ausgeführt wird, kannst du folgende Ergänzung einbauen, die alle aktuell geöffnete Präsentation speichert und schließt.

Besser wäre natürlich, wenn du vor dem Start des Makros in Excel in PowerPoint alle Dateien schließt.

Gruß
Franz

Dim objPPApp As Object ' PowerPoint Application
Dim objPPFile As Object ' PowerPoint Document
Dim intPP As Integer

Set objPPApp = CreateObject("PowerPoint.Application")
'geöffnete Präsentationen speichern und schliessen
For intPP = objPPApp.Presentations.Count To 1 Step -1
  With objPPApp.Presentations(intPP)
    If .Saved = msoFalse Then
      .Save
    End If
    .Close
  End With
Next
Set objPPFile = objPPApp.Presentations.Open(Quellpfad)

'code

objPPFile.Save
objPPFile.Close

objPPApp.Quit

Set objPPApp = Nothing



 

Beiträge aus den Excel-Beispielen zum Thema "PowerPoint wird durch mein Programm geschlossen"