Office PowerPoint 2003-gebeurtenissen afhandelen met Visual Basic .NET 2003

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 824021 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Inleiding

In dit artikel wordt beschreven hoe u Microsoft Office PowerPoint 2003-gebeurtenissen kunt verwerken vanaf een automatiseringsclient die is ontwikkeld met behulp van Microsoft Visual Basic .NET 2003.

Een gebeurtenis-handler samenstellen

U kunt een van de volgende methoden gebruiken om een gebeurtenis-handler samen te stellen met behulp van Visual Basic .NET. Welke methode u kiest, is afhankelijk van de wijze waarop u de gebeurtenis-handler aan een gebeurtenis wilt koppelen.
  • Methode 1

    Doorgaans maakt u een gebeurtenis-handler door het trefwoord Handles in combinatie met het trefwoord WithEvents te gebruiken. Wanneer u een objectverwijzingsvariable declareert met behulp van het trefwoord WithEvents, maakt Visual Basic .NET tijdens runtime automatisch verbinding met de gebeurtenissen van het object. Als u een specifieke gebeurtenis voor een object wilt verwerken, voegt u de relevante handler via de lijst Class en de lijst Method van de Visual Studio .NET-omgeving toe vanuit het venster Code.
  • Methode 2

    Visual Basic .NET biedt een andere manier voor het verwerken van gebeurtenissen. U kunt de AddHandler- en RemoveHandler-instructie gebruiken zodat u de gebeurtenisverwerking voor een bepaalde gebeurtenis dynamisch kunt starten en stoppen.

    Opmerking Als u het trefwoord WithEvents gebruikt voor het samenstellen van gebeurtenis-handlers, kan de uitzondering System.Reflection.TargetInvocationException worden gegenereerd. Gebruik daarom de gebeurtenis AddHandler om gebeurtenis-handlers samen te stellen.

De Visual Basic .NET-automatiseringsclient maken die PowerPoint-gebeurtenissen verwerkt

In de volgende stappen wordt weergegeven hoe u de AddHandler-instructie kunt gebruiken om de PowerPoint-toepassingsgebeurtenissen te verwerken vanaf een automatiseringsclient die is ontwikkeld met behulp van Visual Basic .NET.

Ga als volgt te wek om een Visual Basic .NET-project te maken:
  1. Start Microsoft Visual Studio .NET 2003.
  2. Klik in het menu File op New en klik op Project.
  3. Klik op Visual Basic Projects in de lijst Project Types. Klik op Windows Application in de lijst Templates.
  4. Geef het project de naam PowerPointEvents en klik op OK.

    Standaard wordt nu Form1 gemaakt.
Ga als volgt te werk om verwijzingen naar de Microsoft PowerPoint-objectbibliotheek en de Microsoft Graph-objectbibliotheek toe te voegen:
  1. Klik op Add Reference in het menu Project.
  2. Open het tabblad COM, klik op Microsoft PowerPoint 11.0 Object Library en klik op Select.
  3. Open het tabblad COM, klik op Microsoft Graph 11.0 Object Library en klik op Select.
  4. Klik op OK in het dialoogvenster Add References om de selectie te accepteren.
  5. Dubbelklik op het formulier.

    Het venster Code wordt geopend.
  6. Voeg de volgende code boven aan het bestand Form1.vb toe:
    	Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
    	Imports Office = Microsoft.Office.Core
    	Imports Graph = Microsoft.Office.Interop.Graph
    
  7. Open het menu View en klik op Designer.
  8. Klik in het menu View op Toolbox en voeg een knop toe aan Form1.
  9. Dubbelklik op Button1.

    Het venster Code wordt geopend en de gebeurtenis Button1_Click wordt weergegeven.
  10. Plaats in het venster Code de volgende code voor de gebeurtenis Button1_Click:
    	Dim oApp As PowerPoint.Application
    	Dim oPres As PowerPoint.Presentation
    
  11. Voeg de volgende code toe aan de gebeurtenis Button1_Click:
    	Const sTemplate = "C:\Program Files\Microsoft Office\Templates\Presentation Designs\Orbit.pot"
            'Als de vorige sjabloon niet beschikbaar is, wijzigt u de sjabloonnaam in de naam van een sjabloon die op uw systeem aanwezig is.
            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 en geef het PowerPoint-venster geminimaliseerd weer.
            oApp = New PowerPoint.Application
    
            'Voeg gebeurtenis-handlers toe.
            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
    
            'Maak een nieuwe presentatie die is gebaseerd op de opgegeven sjabloon.
            oPresentations = oApp.Presentations
            oPres = oPresentations.Open(sTemplate, , , True)
    
            'Maak dia 1.
            'Voeg tekst toe aan de dia, wijzig het lettertype en plaats vervolgens 
            'een film op de eerste dia.
            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 = "Mijn voorbeeldpresentatie"
            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 om verwijzingen vrij te geven.
            NAR(oPlaySettings)
            NAR(oAnimationSettings)
            NAR(oMovie)
            NAR(oFont)
            NAR(oTextRange)
            NAR(oTextFrame)
            NAR(oShape)
            NAR(oShapes)
            NAR(oSlide)
            NAR(oSlides)
    
            'Maak dia 2.
            'Voeg tekst toe aan de diatitel en maak de tekst op. Voeg een grafiek toe aan de
            'dia en wijzig het grafiektype in een Gegroepeerde 3D-kolom.
            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 = "Mijn grafiek"
            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 om verwijzingen vrij te geven.
            NAR(oChart)
            NAR(oOLEFormat)
            NAR(oFont)
            NAR(oTextRange)
            NAR(oTextFrame)
            NAR(oShape)
            NAR(oShapes)
            NAR(oSlide)
            NAR(oSlides)
    
    
            'Maak dia 3.
            'Voeg een teksteffect aan de dia toe en pas schaduw op het teksteffect toe.
            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 om verwijzingen vrij te geven.
            NAR(oShadow)
            NAR(oForeColor)
            NAR(oShape)
            NAR(oShapes)
            NAR(oSlide)
            NAR(oSlides)
    
    
            'Wijzig de instellingen voor diaovergang voor alle drie de dia's in
            'de presentatie.
            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
    
    
            'Voer de diavoorstelling in een afzonderlijke methode uit.
            RunSlideShow()
    
            'NAR om verwijzingen vrij te geven.
            NAR(oSlideShowTransition)
            NAR(oRange)
            NAR(oSlides)
    
            'Sluit de presentatie zonder wijzigingen op te slaan en sluit PowerPoint.
            oPres.Saved = True
            oPres.Close()
    
            'NAR de presentatieobjecten.
            NAR(oPres)
            NAR(oPresentations)
    
            'Verwijder alle gebeurtenis-handlers.
            RemoveHandler oApp.SlideShowBegin, AddressOf oApp_SlideShowBegin
            RemoveHandler oApp.SlideShowNextSlide, AddressOf oApp_SlideShowNextSlide
            RemoveHandler oApp.PresentationClose, AddressOf oApp_PresentationClose
    
            'Sluit PowerPoint.
            oApp.Quit()
            NAR(oApp)
    
            GC.Collect()
    
  12. Plaats in het venster Code de volgende code onder de gebeurtenis Button1_Click:
    	Private Sub RunSlideShow()
                Dim oSettings As PowerPoint.SlideShowSettings
    	    Dim oSlideShowWindows As PowerPoint.SlideShowWindows
    
    	    oSettings = oPres.SlideShowSettings
    	    oSettings.StartingSlide = 1
           	    oSettings.EndingSlide = 3
    
                'Voer de diavoorstelling uit. Wacht totdat de diavoorstelling is beëindigd.
                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-functie om verwijzing te verwijderen.
       	Private Sub NAR(ByVal o As Object)
                Try
    	        System.Runtime.InteropServices.Marshal.ReleaseComObject(o)
                Catch
                Finally
                    o = Nothing
                End Try
        	End Sub
    
  13. Voeg de volgende gebeurtenis-handlers toe onder de voorgaande code:
    	'Gebeurtenis-handlers
    
        	Private Sub oApp_SlideShowBegin(ByVal Wn As Microsoft.Office.Interop.PowerPoint.SlideShowWindow)
                'Wijzig de positie en het formaat van het diavoorstellingsvenster.
                Dim oView As PowerPoint.SlideShowView
    
                With Wn
                    .Height = 325
                    .Width = 400
                    .Left = 100
                    .Activate()
                End With
    
               'Start de film bij de eerste dia.
                oView = Wn.View
                oView.Next()
    
                NAR(oView)
                NAR(Wn)
        	End Sub
    
        	Private Sub oApp_SlideShowNextSlide(ByVal Wn As Microsoft.Office.Interop.PowerPoint.SlideShowWindow)
                'Wijzig de kleur en het type van de aanwijzer, afhankelijk van de dia.
                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)
                'Sla de presentatie op als HTML voordat u de presentatie sluit.
                Pres.SaveAs("C:\TestEvents.htm", PowerPoint.PpSaveAsFileType.ppSaveAsHTML)
                NAR(Pres)
        	End Sub
    

Test

  1. Druk op F5 om de toepassing uit te voeren.
  2. Klik op Button1.

    PowerPoint start de diavoorstelling. U ziet het volgende:
    • De eerste dia start een film.
    • Het aanwijzertype verandert.
    • De kleur verandert in de tweede dia die een grafiek bevat.
  3. Sluit de presentatie.

Referenties

Voor meer informatie klikt u op de volgende artikelnummers in de Microsoft Knowledge Base:
308330PowerPoint-gebeurtenissen afhandelen met Visual Basic .NET
254009Demonstratie van PowerPoint 2000-gebeurtenissen beschikbaar om te downloaden
303717Automatisering gebruiken om een PowerPoint-presentatie te maken en weer te geven met Visual Basic .NET
823996PIA niet gevonden wanneer u in Visual Studio .NET naar een Office-typebibliotheek verwijst

Eigenschappen

Artikel ID: 824021 - Laatste beoordeling: maandag 13 februari 2006 - Wijziging: 1.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Office PowerPoint 2003
  • Microsoft Visual Basic .NET 2003 Standard Edition
Trefwoorden: 
kbhowtomaster kbautomation KB824021

Geef ons feedback

 

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