MSCom
Neuer Benutzer
Threadstarter
- Dabei seit
- 20.09.2016
- Beiträge
- 1
Hallo,
ich suche eine Möglichkeit in Powerpoint VBA bei jedem Folienwechsel die aktuelle Folie / Foliennummer zu ermitteln und diese in eine Variable zu schreiben. Diese Variable möchte ich dann zur weiteren Verarbeitung nutzen. z.B. Blende auf aktueller Folie die Grafik xyz aus wenn etwas passiert oder eine andere Variable einen bestimmten Wert hat.
Wenn ich eine der beiden Varianten nutze, dann funktionieren nachfolgenden MsgBoxen nicht mehr / werden nicht angezeigt. Keine Ahnung warum? Wenn ich ActiveWindow... bzw. powerPointApplication.ActiveWindow... deaktivieren und statt ActivePresentation.Slides(aktuelleFolie) ActivePresentation.Slides(2) schreibe, dann funktioniert das Einblenden und Ausblenden.
Sub OnSlideShowPageChange()
aktuelleFolie = ActiveWindow.Selection.SlideRange(1).SlideIndex
MsgBox "Das ist Folie Slideindex " & aktuelleFolie
If Joker5050 = "True" Then
MsgBox "in der Schleife 1 = Joker5050 ausblenden"
ActivePresentation.Slides(aktuelleFolie).Shapes("5050").Visible = 0
ActivePresentation.Slides(aktuelleFolie).Shapes("5050_durchgestrichen").Visible = 1
Else
MsgBox "in der Schleife 2 = Joker5050 einblenden"
ActivePresentation.Slides(aktuelleFolie).Shapes("5050").Visible = 1
ActivePresentation.Slides(aktuelleFolie).Shapes("5050_durchgestrichen").Visible = 0 ...
...
End Sub
Sub OnSlideShowPageChange()
Set powerPointApplication = GetObject(, "PowerPoint.Application")
Set powerPointPresentation = powerPointApplication.ActivePresentation
aktuelleFolie = powerPointApplication.ActiveWindow.View.Slide.SlideIndex
MsgBox "Das ist Folie Slideindex " & aktuelleFolie
If Joker5050 = "True" Then
MsgBox "in der Schleife 1 = Joker5050 ausblenden"
ActivePresentation.Slides(aktuelleFolie).Shapes("5050").Visible = 0
ActivePresentation.Slides(aktuelleFolie).Shapes("5050_durchgestrichen").Visible = 1
Else
MsgBox "in der Schleife 2 = Joker5050 einblenden"
ActivePresentation.Slides(aktuelleFolie).Shapes("5050").Visible = 1
ActivePresentation.Slides(aktuelleFolie).Shapes("5050_durchgestrichen").Visible = 0
...
...
End Sub
Welchen Code sollte ich verwenden.
ich suche eine Möglichkeit in Powerpoint VBA bei jedem Folienwechsel die aktuelle Folie / Foliennummer zu ermitteln und diese in eine Variable zu schreiben. Diese Variable möchte ich dann zur weiteren Verarbeitung nutzen. z.B. Blende auf aktueller Folie die Grafik xyz aus wenn etwas passiert oder eine andere Variable einen bestimmten Wert hat.
Wenn ich eine der beiden Varianten nutze, dann funktionieren nachfolgenden MsgBoxen nicht mehr / werden nicht angezeigt. Keine Ahnung warum? Wenn ich ActiveWindow... bzw. powerPointApplication.ActiveWindow... deaktivieren und statt ActivePresentation.Slides(aktuelleFolie) ActivePresentation.Slides(2) schreibe, dann funktioniert das Einblenden und Ausblenden.
Sub OnSlideShowPageChange()
aktuelleFolie = ActiveWindow.Selection.SlideRange(1).SlideIndex
MsgBox "Das ist Folie Slideindex " & aktuelleFolie
If Joker5050 = "True" Then
MsgBox "in der Schleife 1 = Joker5050 ausblenden"
ActivePresentation.Slides(aktuelleFolie).Shapes("5050").Visible = 0
ActivePresentation.Slides(aktuelleFolie).Shapes("5050_durchgestrichen").Visible = 1
Else
MsgBox "in der Schleife 2 = Joker5050 einblenden"
ActivePresentation.Slides(aktuelleFolie).Shapes("5050").Visible = 1
ActivePresentation.Slides(aktuelleFolie).Shapes("5050_durchgestrichen").Visible = 0 ...
...
End Sub
Sub OnSlideShowPageChange()
Set powerPointApplication = GetObject(, "PowerPoint.Application")
Set powerPointPresentation = powerPointApplication.ActivePresentation
aktuelleFolie = powerPointApplication.ActiveWindow.View.Slide.SlideIndex
MsgBox "Das ist Folie Slideindex " & aktuelleFolie
If Joker5050 = "True" Then
MsgBox "in der Schleife 1 = Joker5050 ausblenden"
ActivePresentation.Slides(aktuelleFolie).Shapes("5050").Visible = 0
ActivePresentation.Slides(aktuelleFolie).Shapes("5050_durchgestrichen").Visible = 1
Else
MsgBox "in der Schleife 2 = Joker5050 einblenden"
ActivePresentation.Slides(aktuelleFolie).Shapes("5050").Visible = 1
ActivePresentation.Slides(aktuelleFolie).Shapes("5050_durchgestrichen").Visible = 0
...
...
End Sub
Welchen Code sollte ich verwenden.