Office PowerPoint 2003-gebeurtenissen afhandelen met Visual Basic .NET 2003
De informatie in dit artikel is van toepassing op:
- Microsoft Office PowerPoint 2003
- Microsoft Visual Basic .NET 2003 Standard Edition
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.
Terug naar beginEen 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.
Terug naar beginDe 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:
- Start Microsoft Visual Studio .NET 2003.
- Klik in het menu File op New en klik op Project.
- Klik op Visual Basic Projects in de lijst Project Types. Klik op Windows Application in de lijst Templates.
- 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:
- Klik op Add Reference in het menu Project.
- Open het tabblad COM, klik op Microsoft PowerPoint 11.0 Object Library en klik op Select.
- Open het tabblad COM, klik op Microsoft Graph 11.0 Object Library en klik op Select.
- Klik op OK in het dialoogvenster Add References om de selectie te accepteren.
- Dubbelklik op het formulier.
Het venster Code wordt geopend. - 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
- Open het menu View en klik op Designer.
- Klik in het menu View op Toolbox en voeg een knop toe aan Form1.
- Dubbelklik op Button1.
Het venster Code wordt geopend en de gebeurtenis Button1_Click wordt weergegeven. - Plaats in het venster Code de volgende code voor de gebeurtenis Button1_Click:
Dim oApp As PowerPoint.Application Dim oPres As PowerPoint.Presentation
- 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()
- 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
- 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 beginTest
- Druk op F5 om de toepassing uit te voeren.
- 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.
- Sluit de presentatie.
Terug naar beginReferenties
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
Reacties
Nog geen reacties geplaatst.