Powerpoint mit VBA aktuelle Folie ermitteln für Weiterverabe

Moderator: ModerationP

Powerpoint mit VBA aktuelle Folie ermitteln für Weiterverabe

Beitragvon mrkw01 » 18. Okt 2017, 10:16

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.

Code: Alles auswählen
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


Code: Alles auswählen
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.

Vielen Dank für Eure Antworten
mrkw01
Neuling
 
Beiträge: 2
Registriert: 17. Okt 2017, 20:09

Zurück zu PowerPoint Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast