Je bent nu offline; er wordt gewacht tot er weer een internetverbinding is

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

De ondersteuning voor Office 2003 is beëindigd

De ondersteuning voor Office 2003 is door Microsoft beëindigd op 8 april. Deze wijziging heeft gevolgen voor software-updates en beveiligingsopties. Meer informatie over wat voor gevolgen dit voor u heeft en hoe u beveiligd blijft.

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 VisualBasic .NET 2003.

Terug naar begin

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 aaneen 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.
Terug naar begin

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
Terug naar begin

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.
Terug naar begin
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
Terug naar begin
powerpoint vb net event power point connection
Eigenschappen

Artikel-id: 824021 - Laatst bijgewerkt: 02/13/2006 17:14:00 - Revisie: 1.0

Microsoft Office PowerPoint 2003, Microsoft Visual Basic .NET 2003 Standard Edition

  • kbhowtomaster kbautomation KB824021
Feedback
ml>t=">