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.

È stato utile?

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 è:

  1. Creare un modulo di classe. In cima (Dopo ogni Option XXX), put Public WithEvents App As Application e poi mettere la vostra routine di sopra di sotto di tale.
  2. 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top