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:
- 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
Test
- 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.
Voor meer informatie klikt u op de volgende artikelnummers in de Microsoft Knowledge Base:
308330
(http://support.microsoft.com/kb/308330/
)
PowerPoint-gebeurtenissen afhandelen met Visual Basic .NET
254009
(http://support.microsoft.com/kb/254009/
)
Demonstratie van PowerPoint 2000-gebeurtenissen beschikbaar om te downloaden
303717
(http://support.microsoft.com/kb/303717/
)
Automatisering gebruiken om een PowerPoint-presentatie te maken en weer te geven met Visual Basic .NET
823996
(http://support.microsoft.com/kb/823996/
)
PIA niet gevonden wanneer u in Visual Studio .NET naar een Office-typebibliotheek verwijst
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
| kbhowtomaster kbautomation KB824021 |