none
Powerpoint 2007: Refresh-Problem bei Makro-Ausführung in laufender Präsentation RRS feed

  • Frage

  • Hallo!

    Wir haben einige Powerpoint-Präsentationen, in denen mit Hilfe von Makros auf das Anklicken einer Schaltfläche (eines Bildes) hin Texte aus- und andere eingeblendet werden. Dies funktioniert in Powerpoint 2003 schon immer, seit einiger Zeit (seit einem Sicherheits-Update?) in Powerpoint 2007 aber leider nicht mehr.

    Der Effekt sieht so aus, dass beim Klicken auf eine solche Schaltfläche zwar Text ausgeblendet wird (in der laufenden Präsentation), der Ersatztext aber nicht eingeblendet. Auch die Farbgebung der Schaltfläche wird in dem Makro geändert, aber nicht in der Präsentation. Wenn man die laufende Präsentation mit ESC abbricht, sieht die entsprechende Folie allerdings genau so aus, wie sie aussehen soll, d.h., das Makro wurde abgearbeitet, obwohl es in der laufenden Präsentation nicht zu sehen war.

    Der VBA-Code (ein Beispiel aus einer der Präsentationen) ist Folgender:

    Set act_PPT = Application.ActivePresentation
    Slide_Nr = act_PPT.SlideShowWindow.View.Slide.SlideIndex
    Set act_Slide = act_PPT.Slides(Slide_Nr)

    'den Name des gedrückten Buttons ermitteln
    Button_Name = act_Shape.Name

    'wenn es denn wirklich ein Button ist, den Text dazu ermitteln
    If (InStr(Button_Name, "Button") > 0) Then
      Text_Info_Feld_Name = "Text_Info_Feld" & Mid(Button_Name, 7)

      With act_Slide.Shapes
        numShapes = .Count
       
        For i = 1 To numShapes
          'den aktuellen Button aufhellen
          If .Item(i).Name = Button_Name Then
            .Item(i).Fill.ForeColor.RGB = RGB(149, 179, 215)
          ElseIf (InStr(.Item(i).Name, "Button")) Then
            .Item(i).Fill.ForeColor.RGB = RGB(79, 129, 189)
          End If
          'den dazu gehörenden Text anzeigen - alle anderen weg
          If .Item(i).Name = Text_Info_Feld_Name Then
            .Item(i).Visible = msoTrue
          ElseIf (InStr(.Item(i).Name, "Text_Info_Feld")) Then
            .Item(i).Visible = msoFalse
          End If
        Next

      End With
    End If

    Wie gesagt, läuft dieser Code in Powerpoint 2003 auch in der laufenden Präsentation korrekt ab. Dasselbe gilt noch für Powerpoint 2007 im Versionsstand

    (12.0.6504.5000) SP 2 MSO (12.0.6425.1000), nicht aber für Version

    (12.0.6535.5002) SP 2 MSO (12.0.6535.5002).

    Hat jemand eine Idee, woran dies liegen könnte?

    Für jede Idee und Anregung oder sogar Lösung sage im Voraus "vielen Dank"!

    Grüße,

    Sönke Schreiber

     

    Freitag, 13. August 2010 12:57