PowerPoint 2007 - Come usare gestore di eventi Application.NewPresentation?
-
03-10-2019 - |
Domanda
così ho scoperto che PowerPoint 2007 fa infatti i gestori di eventi di supporto al livello di applicazione. Per esempio Application.NewPresentation
o anche Application.AfterNewPresentation
E 'descritto qui http://msdn.microsoft.com/en- us / library / ff745073.aspx
Ma la vera domanda è: come faccio a utilizzare questi? Dove li uso? A dire il mio scenario, quello che voglio è quello di inserire il testo dinamico in alcune caselle di testo. Ho il codice di macro per fare questo e che sta funzionando esattamente come voglio che. Ma ho bisogno la macro al fuoco una volta al nuova presentazione è stato creato da un modello potm . E solo in quel caso. Proprio come si fa in Word 2007.
Da dove comincio? Ho cercato di creare solo un sub alla ricerca di questo tipo e salvarla come file potm e aprire una nuova presentazione basata su tale modello. E non è successo niente.
Private Sub App_NewPresentation(ByVal Pres As Presentation)
MsgBox "Running!"
End Sub
Edit: E 'possibile aprire qualsiasi file di Office 2007 con un editor XML. Io uso la UI personalizzato Editor per Microsoft Office e in che aggiungo un personalizzato ui.xml parte relativa a Office 2007 in seguito alla guida qui presentata: http://www.pptalchemy.co.uk/PowerPoint_Auto_Open_Code.html
Ma io incorrere in problemi quando PowerPoint crea una nuova presentazione basata su tale modello. Apertura del modello in sé funziona bene. Il gestore di eventi è lì e il codice viene eseguito in modo bello. Ma una nuova presentazione basata su di esso? Niente da fare, il gestore è anche lì. Ma si dice che non riesce a trovare la macro. Anche se la macro è nella nuova presentazione pure poiché posso aprire Visual Basic Editor e trovare la macro e quindi eseguirlo. E 'solo l'autopart che non sembra funzionare come dovrebbe.
Soluzione
Il solo modo per creare una macro automatica in PowerPoint VBA è di avere il file come un componente aggiuntivo (ppa o .ppam - non pptx / pptm / .potm / etc) . E il modo di creare che è:
- Creare un modulo di classe. In cima
(Dopo ogni
Option XXX
), putPublic WithEvents App As Application
e poi mettere la vostra routine di sopra di sotto di tale. -
Creare un modulo di qualsiasi nome e messa:
Dim X As New Class1 Sub AutoOpen() Set X.App = Application ''# Code to create new presentation End Sub
Ancora una volta, questo non funzionerà dal vostro requisito di .potm. Un altro modo che si può considerare è stato deprezzato, ma funziona ancora, che è quello di creare un file di procedura guidata.
Altri suggerimenti
La macro nella presentazione che è stata creata non ha modo di correre, come la macro Auto_apri funziona solo con moduli aggiuntivi. Sulla base del modo in cui si sta facendo, dovreste ricaricare il nastro a calci l'evento nella vostra nuova presentazione che si desidera eseguire.