Allen,
voor een presentatie aanstaande Donderdag heb ik twee powerpoint presentatie's gemaakt.
De bedoeling is dat ik op het einde van presentatie 1 een soort timer laat zien met de tekst: "Switching presentation in X seconds' waarbij X het aantal seconden is.
Na deze seconden dient de tweede presentatie in slideshow automatisch te openen.
In ieder geval hier de code die ik reeds heb
Module:
Class module: claHandler
Dit werkt tot nu toe zoals het hoort... alleen.... Zoals je ziet controleer ik op 'slide nummer'. Wanneer ik bij slide 16 aankom zal hij bovenstaande code uitvoeren en de presentatie 'Teammeeting_Virtualization.ppsx' openen.
Dit doet hij perfect, maar het probleem situeert zich alsnog: Wanneer ik op Slide 16 van deze tweede presentatie kom opent hij OPNIEUW deze presentatie. Dus ipv de Macro per presentatie te houden, gebruikt Powerpoint dit blijkbaar voor alle instantie's.
Nu heb ik al verscheidene pogingen gewaagd om de eerste presentatie te laten sluiten en wanneer ik bv.
Presentations(1).Close
erbij plaatst, sluit hij inderdaad mijn eerste presentatie af maar plaats hij een 'lege powerpoint scherm' boven mijn tweede slideshow....
Iemand enig idee?
Ook een macro automatisch laten runnen bij het opstarten van de presentatie is blijkbaar niet mogelijk in Powerpoint 2007 (tenzei met Add-in maar dit is voor mij niet mogelijk).
voor een presentatie aanstaande Donderdag heb ik twee powerpoint presentatie's gemaakt.
De bedoeling is dat ik op het einde van presentatie 1 een soort timer laat zien met de tekst: "Switching presentation in X seconds' waarbij X het aantal seconden is.
Na deze seconden dient de tweede presentatie in slideshow automatisch te openen.
In ieder geval hier de code die ik reeds heb
Module:
code:
1
2
3
4
5
6
7
8
9
10
11
| Option Explicit Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Dim Handler As New claHandler Sub ShowWithEvents() Set Handler.SlideShow = Application ActivePresentation.SlideShowSettings.Run End Sub |
Class module: claHandler
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| Option Explicit Public WithEvents SlideShow As Application Public Sub SlideShow_SlideShowEnd(ByVal Pres As Presentation) Set SlideShow = Nothing End Sub Public Sub SlideShow_SlideShowNextSlide(ByVal Wn As SlideShowWindow) Dim oPPT As PowerPoint.Application Dim SecondPres As Presentation If Wn.View.Slide.SlideIndex = 16 Then Dim TMinus As Integer TMinus = 1 Do While (TMinus >= 0) Sleep 1000 If Wn.Presentation.Slides(16).Shapes(1).HasTextFrame Then Wn.Presentation.Slides(16).Shapes(1).TextFrame.TextRange.Text = "switching presentation in " & vbNewLine & TMinus & vbNewLine & "seconds" End If TMinus = TMinus - 1 DoEvents Loop Set oPPT = New PowerPoint.Application Presentations.Open ("TeamMeeting_Virtualization.ppsx") End If End Sub |
Dit werkt tot nu toe zoals het hoort... alleen.... Zoals je ziet controleer ik op 'slide nummer'. Wanneer ik bij slide 16 aankom zal hij bovenstaande code uitvoeren en de presentatie 'Teammeeting_Virtualization.ppsx' openen.
Dit doet hij perfect, maar het probleem situeert zich alsnog: Wanneer ik op Slide 16 van deze tweede presentatie kom opent hij OPNIEUW deze presentatie. Dus ipv de Macro per presentatie te houden, gebruikt Powerpoint dit blijkbaar voor alle instantie's.
Nu heb ik al verscheidene pogingen gewaagd om de eerste presentatie te laten sluiten en wanneer ik bv.
Presentations(1).Close
erbij plaatst, sluit hij inderdaad mijn eerste presentatie af maar plaats hij een 'lege powerpoint scherm' boven mijn tweede slideshow....
Iemand enig idee?
Ook een macro automatisch laten runnen bij het opstarten van de presentatie is blijkbaar niet mogelijk in Powerpoint 2007 (tenzei met Add-in maar dit is voor mij niet mogelijk).
Last night I lay in bed looking up at the stars in the sky and I thought to myself, where the heck is the ceiling.