Fermer Objet de Powerpoint avec Excel VBA (PAS à l'aide de Powerpoint.Demande)

En espérant que quelqu'un peut m'aider avec du code VBA. J'utilise VBA boucle pour coller des tableaux Excel, des zones de texte et des tableaux dans un modèle de présentation Powerpoint. Cependant, parce que je ne peux pas être sûr que l'utilisateur aura la Bibliothèque d'Objet Powerpoint installé, je ne peux pas utiliser le Dim PPTApp comme Powerpoint.Type d'Application de la syntaxe.

J'utilise des objets. Il fonctionne très bien. Sauf pour une pièce: la fermeture de Powerpoint.

Code:

Dim oPPTPres As Object  ' Late binding: This is a PowerPoint.Presentation but we cannot assume that the Microsoft PowerPoint 11 library will be loaded in the workbook that this module has been copied to.
Dim oPPTShape As Object ' Late binding: This is a PowerPoint.Shapebut we cannot assume that the Microsoft PowerPoint 11 library will be loaded in the workbook that this module has been copied to.


PPTFile = Range("PPTFile").value ' Read PowerPoint template file name
Set oPPTPres = GetObject(PPTFile): oPPTPres.Application.Visible = msoTrue ' Switch to or open template file

.
.
.
.

strNewPresPath = Range("OutputFileName").value
oPPTPres.SaveAs strNewPresPath
' Range("PPTFile").value = strNewPresPath
ScreenUpdating = True
oPPTPres.Close 'Closes presentation but not Powerpoint
oPPTPres.Application.Quit 'No noticeable effect

La présentation active va fermer, mais Powerpoint lui-même reste ouvert (pas de fichier de la fenêtre ouverte). Ensuite, parce qu'elle est ouverte, si le prochain court (j'ai une boucle qui passe en boucle sur et à faire beaucoup de ces versions dos-à-dos), il ouvre le modèle ainsi que les dernières construit fichier Powerpoint, création de système de verrouillage de problèmes.

Des idées?

Merci beaucoup pour votre aide!

OriginalL'auteur JMP | 2012-08-28