Come gestire gli eventi di PowerPoint utilizzando Visual Basic .NET 2003

Traduzione articoli Traduzione articoli
Identificativo articolo: 824021 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

INTRODUZIONE

In questo articolo viene descritto come gestire eventi di Microsoft Office PowerPoint da un client di automazione viene sviluppata utilizzando Microsoft Visual Basic .NET 2003.

Creare un gestore eventi

È possibile utilizzare uno dei seguenti metodi per creare un gestore eventi utilizzando Visual Basic. NET. Il metodo scelto dipende la come si desidera associare il gestore eventi a un evento.
  • Metodo 1

    In genere, creando un gestore eventi con la parola chiave Handles con la parola chiave WithEvents . Quando si dichiara una variabile di riferimento di oggetto tramite la parola chiave WithEvents , Visual Basic .NET si automaticamente connette agli eventi dell'oggetto in fase di esecuzione. Per gestire un evento specifico per un oggetto, aggiungere il gestore di rilevante utilizzando la classe elenco e l'elenco dell'ambiente di Visual Studio .NET in codice metodo visualizzare.
  • Metodo 2

    Visual Basic .NET fornisce un altro modo per gestire gli eventi. È possibile utilizzare l'istruzione AddHandler e l'istruzione RemoveHandler in modo che sia possibile avviare in modo dinamico e interrompere dinamicamente la gestione degli eventi per un evento specifico.

    Nota Se si utilizza la parola chiave WithEvents per creare i gestori eventi, puoi ricevere un'eccezione System.Reflection.TargetInvocationException . Di conseguenza, è possibile utilizzare l'evento a AddHandler per creare i gestori eventi.

Creare il client di automazione di Visual Basic .NET che gestisce gli eventi di PowerPoint

Nei passaggi seguenti viene illustrato come utilizzare l'istruzione AddHandler per gestire gli eventi dell'applicazione di PowerPoint da un client di automazione viene sviluppata utilizzando Visual Basic. NET.

Per creare un progetto di Visual Basic. NET, attenersi alla seguente procedura:
  1. Avviare Microsoft Visual Studio .NET 2003.
  2. Dal menu file , fare clic su Nuovo , quindi progetto .
  3. Nell'elenco Tipi progetto , fare clic su Progetti di Visual Basic . Nell'elenco modelli scegliere Applicazione Windows .
  4. Denominare il progetto PowerPointEvents e quindi fare clic su OK .

    Per impostazione predefinita, viene creato un form denominato Form1.
Per aggiungere riferimenti alla libreria di oggetti di Microsoft PowerPoint e Microsoft Graph Object Library, attenersi alla seguente procedura:
  1. Scegliere Aggiungi riferimento dal menu progetto .
  2. Nella scheda COM , fare clic su uno dei seguenti e quindi fare clic su Seleziona :
    • Per Microsoft Office PowerPoint 2007, fare clic su Libreria oggetti di Microsoft PowerPoint 12.0 .
    • Per Microsoft Office PowerPoint 2003, fare clic su Microsoft PowerPoint 11.0 Object Library .
  3. Nella scheda COM , fare clic su uno dei seguenti e quindi fare clic su Seleziona :
    • Per Microsoft Graph 12.0, fare clic su Libreria oggetti di Microsoft Graph 12.0 .
    • Per Microsoft Graph 11.0, fare clic su Microsoft Graph 11.0 Object Library .
  4. Nella finestra di dialogo Aggiungi riferimento , è necessario scegliere OK per accettare le selezioni effettuate.
  5. Fare doppio clic sul form.

    Verrà visualizzata la finestra del codice.
  6. Nella parte superiore del file Form1.vb, aggiungere il codice riportato di seguito:
    	Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
    	Imports Office = Microsoft.Office.Core
    	Imports Graph = Microsoft.Office.Interop.Graph
    
  7. Scegliere Progettazione dal menu Visualizza .
  8. Dal menu Visualizza , fare clic su Strumenti e quindi aggiungere un pulsante a Form1.
  9. Fare doppio clic su Button1 .

    La finestra del codice verrà aperta in corrispondenza all'evento Button1_Click .
  10. Nella finestra del codice, inserire il codice seguente prima dell'evento Button1_Click :
    	Dim oApp As PowerPoint.Application
    	Dim oPres As PowerPoint.Presentation
    
  11. Aggiungere il seguente codice all'evento Button1_Click : sTemplate const
    	Const sTemplate = "C:\Program Files\Microsoft Office\Templates\Presentation Designs\Orbit.pot"
            ' If the previous template is not available, change the template name to a template name that is on your system.
            Const sVideo = "C:\WINDOWS\system32\oobe\images\intro.wmv"
    
            Dim oPresentations As PowerPoint.Presentations
            Dim oSlides As PowerPoint.Slides
            Dim oSlide As PowerPoint.Slide
            Dim oShapes As PowerPoint.Shapes
            Dim oShape As PowerPoint.Shape
            Dim oMovie As PowerPoint.Shape
            Dim oAnimationSettings As PowerPoint.AnimationSettings
            Dim oPlaySettings As PowerPoint.PlaySettings
            Dim oTextFrame As PowerPoint.TextFrame
            Dim oTextRange As PowerPoint.TextRange
            Dim oFont As PowerPoint.Font
            Dim oOLEFormat As PowerPoint.OLEFormat
            Dim oShadow As PowerPoint.ShadowFormat
            Dim oForeColor As PowerPoint.ColorFormat
            Dim oRange As PowerPoint.SlideRange
            Dim oSlideShowTransition As PowerPoint.SlideShowTransition
    
            'Start PowerPoint and then make the PowerPoint window visible but minimized.
            oApp = New PowerPoint.Application
    
            'Add event handlers.
            AddHandler oApp.SlideShowBegin, AddressOf oApp_SlideShowBegin
            AddHandler oApp.SlideShowNextSlide, AddressOf oApp_SlideShowNextSlide
            AddHandler oApp.PresentationClose, AddressOf oApp_PresentationClose
    
            oApp.Visible = True
            oApp.WindowState = PowerPoint.PpWindowState.ppWindowMinimized
    
            'Create a new presentation that is based on the specified template.
            oPresentations = oApp.Presentations
            oPres = oPresentations.Open(sTemplate, , , True)
    
            'Build slide 1.
            'Add text to the slide, change the font, and then insert or position a 
            'movie on the first slide.
            oSlides = oPres.Slides
            oSlide = oSlides.Add(1, PowerPoint.PpSlideLayout.ppLayoutTitleOnly)
            oShapes = oSlide.Shapes
            oShape = oShapes.Item(1)
            oTextFrame = oShape.TextFrame
            oTextRange = oTextFrame.TextRange
            oTextRange.Text = "My sample presentation"
            oFont = oTextRange.Font
            oFont.Name = "Comic Sans MS"
            oFont.Size = 48
    
            oMovie = oShapes.AddMediaObject(sVideo, 150, 150, 500, 350)
            oAnimationSettings = oMovie.AnimationSettings
            oPlaySettings = oAnimationSettings.PlaySettings
            oPlaySettings.PlayOnEntry = True
            oPlaySettings.HideWhileNotPlaying = True
    
            'NAR to release references.
            NAR(oPlaySettings)
            NAR(oAnimationSettings)
            NAR(oMovie)
            NAR(oFont)
            NAR(oTextRange)
            NAR(oTextFrame)
            NAR(oShape)
            NAR(oShapes)
            NAR(oSlide)
            NAR(oSlides)
    
            'Build slide 2.
            'Add text to the slide title and then format the text. Also, add a chart to the
            'slide and then change the chart type to a 3D Column Clustered.
            oSlides = oPres.Slides
            oSlide = oSlides.Add(2, PowerPoint.PpSlideLayout.ppLayoutTitleOnly)
            oShapes = oSlide.Shapes
            oShape = oShapes.Item(1)
            oTextFrame = oShape.TextFrame
            oTextRange = oTextFrame.TextRange
            oTextRange.Text = "My chart"
            oFont = oTextRange.Font
            oFont.Name = "Comic Sans MS"
            oFont.Size = 48
    
            Dim oChart As Graph.Chart
            oShape = oShapes.AddOLEObject(150, 150, 480, 320, "MSGraph.Chart.8")
            oOLEFormat = oShape.OLEFormat
            oChart = oOLEFormat.Object
            oChart.ChartType = Graph.XlChartType.xl3DColumnClustered
    
            'NAR to release references.
            NAR(oChart)
            NAR(oOLEFormat)
            NAR(oFont)
            NAR(oTextRange)
            NAR(oTextFrame)
            NAR(oShape)
            NAR(oShapes)
            NAR(oSlide)
            NAR(oSlides)
    
    
            'Build slide 3.
            'Add a text effect to the slide and then apply shadows to the text effect.
            oSlides = oPres.Slides
            oSlide = oSlides.Add(3, PowerPoint.PpSlideLayout.ppLayoutBlank)
            oSlide.FollowMasterBackground = False
            oShapes = oSlide.Shapes
            oShape = oShapes.AddTextEffect(Office.MsoPresetTextEffect.msoTextEffect27, _
                "The End", "Impact", 96, False, False, 230, 200)
    
            oShadow = oShape.Shadow
            oForeColor = oShadow.ForeColor
            oForeColor.SchemeColor = PowerPoint.PpColorSchemeIndex.ppForeground
            oShadow.Visible = True
            oShadow.OffsetX = 3
            oShadow.OffsetY = 3
    
            'NAR to release references.
            NAR(oShadow)
            NAR(oForeColor)
            NAR(oShape)
            NAR(oShapes)
            NAR(oSlide)
            NAR(oSlides)
    
    
            'Modify the slide show transition settings for all three slides in
            'the presentation.
            Dim SlideIdx(3) As Integer
            SlideIdx(0) = 1
            SlideIdx(1) = 2
            SlideIdx(2) = 3
    
            oSlides = oPres.Slides
            oRange = oSlides.Range(SlideIdx)
            oSlideShowTransition = oRange.SlideShowTransition
            oSlideShowTransition.AdvanceOnTime = False
            oSlideShowTransition.EntryEffect = PowerPoint.PpEntryEffect.ppEffectBoxOut
    
    
            'Run the slide show in a separate method.
            RunSlideShow()
    
            'NAR to release references.
            NAR(oSlideShowTransition)
            NAR(oRange)
            NAR(oSlides)
    
            'Close the presentation without saving changes and then quit PowerPoint.
            oPres.Saved = True
            oPres.Close()
    
            'NAR the presentation objects.
            NAR(oPres)
            NAR(oPresentations)
    
            'Remove all event handlers.
            RemoveHandler oApp.SlideShowBegin, AddressOf oApp_SlideShowBegin
            RemoveHandler oApp.SlideShowNextSlide, AddressOf oApp_SlideShowNextSlide
            RemoveHandler oApp.PresentationClose, AddressOf oApp_PresentationClose
    
            'Quit PowerPoint.
            oApp.Quit()
            NAR(oApp)
    
            GC.Collect()
    
  12. Nella finestra del codice, inserire il codice seguente sotto l'evento Button1_Click :
    	Private Sub RunSlideShow()
                Dim oSettings As PowerPoint.SlideShowSettings
    	    Dim oSlideShowWindows As PowerPoint.SlideShowWindows
    
    	    oSettings = oPres.SlideShowSettings
    	    oSettings.StartingSlide = 1
           	    oSettings.EndingSlide = 3
    
                'Run the slide show. Wait for the slide show to finish.
                oSettings.Run()
    
                oSlideShowWindows = oApp.SlideShowWindows
    
                On Error Resume Next
                Do While oSlideShowWindows.Count >= 1
    	        System.Windows.Forms.Application.DoEvents()
           	    Loop
    
    	    NAR(oSlideShowWindows)
                NAR(oSettings)
    	End Sub
    
        	'NAR function to remove reference.
       	Private Sub NAR(ByVal o As Object)
                Try
    	        System.Runtime.InteropServices.Marshal.ReleaseComObject(o)
                Catch
                Finally
                    o = Nothing
                End Try
        	End Sub
    
  13. Aggiungere i seguenti gestori di eventi sotto il codice precedente:
    	'Event Handlers
    
        	Private Sub oApp_SlideShowBegin(ByVal Wn As Microsoft.Office.Interop.PowerPoint.SlideShowWindow)
                'Change the position and the size of the slide show window.
                Dim oView As PowerPoint.SlideShowView
    
                With Wn
                    .Height = 325
                    .Width = 400
                    .Left = 100
                    .Activate()
                End With
    
               'Start the movie at the first slide.
                oView = Wn.View
                oView.Next()
    
                NAR(oView)
                NAR(Wn)
        	End Sub
    
        	Private Sub oApp_SlideShowNextSlide(ByVal Wn As Microsoft.Office.Interop.PowerPoint.SlideShowWindow)
                'Change the color and the type of pointer depending on the slide.
                Dim Showpos As Integer
                Dim oView As PowerPoint.SlideShowView
                Dim oColorFormat As PowerPoint.ColorFormat
    
                oView = Wn.View
                Showpos = oView.CurrentShowPosition + 1
    
                If Showpos = 3 Then
                    oColorFormat = oView.PointerColor
                    oColorFormat.RGB = RGB(255, 0, 0)
                    oView.PointerType = PowerPoint.PpSlideShowPointerType.ppSlideShowPointerPen
                Else
                    oColorFormat = oView.PointerColor
                    oColorFormat.RGB = RGB(0, 0, 0)
                    oView.PointerType = PowerPoint.PpSlideShowPointerType.ppSlideShowPointerArrow
                End If
    
                NAR(oColorFormat)
                NAR(oView)
                NAR(Wn)
        	End Sub
    
        	Private Sub oApp_PresentationClose(ByVal Pres As Microsoft.Office.Interop.PowerPoint.Presentation)
                'Before you close the presentation, save the presentation as HTML.
                Pres.SaveAs("C:\TestEvents.htm", PowerPoint.PpSaveAsFileType.ppSaveAsHTML)
                NAR(Pres)
        	End Sub
    

Provare a utilizzarla

  1. Premere F5 per eseguire l'applicazione.
  2. Fare clic su Button1 .

    Avvio della presentazione di PowerPoint. Si noti quanto segue:
    • La prima diapositiva viene avviato un filmato.
    • Le modifiche di tipo puntatore.
    • Le modifiche di colore della seconda diapositiva contenente un grafico.
  3. Chiudere la presentazione.

Riferimenti

Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
308330Come gestire gli eventi di PowerPoint 2002 utilizzando Visual Basic .NET 2002
254009Dimostrazione di PowerPoint 2000 evento disponibile per il download
303717Come utilizzare l'automazione per creare e visualizzare una presentazione di PowerPoint 2002 o una presentazione di PowerPoint 2003 mediante Visual Basic .NET 2002 o Visual Basic .NET 2003
823996Assembly di interoperabilità primario non viene trovato quando si fa riferimento a una libreria di tipo Office in Visual Studio .NET

Proprietà

Identificativo articolo: 824021 - Ultima modifica: giovedì 24 maggio 2007 - Revisione: 2.1
Le informazioni in questo articolo si applicano a:
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft Visual Basic .NET 2003 Standard Edition
Chiavi: 
kbmt kbexpertiseinter kbhowtomaster kbautomation KB824021 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 824021
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com