KB0209: Ich kann meine PowerPoint-Datei mit PowerPoint 2013 oder höher nicht reparieren

Problem

PowerPoint kann eine beschädigte PowerPoint-Datei nicht reparieren.

Erläuterung

Das Reparieren von PowerPoint-Dateien schlägt fehl, wenn vor der Reparatur durch PowerPoint programmgesteuert auf Folien zugegriffen wird. thinkcell und höchstwahrscheinlich auch andere Add-Ins müssen jedoch beim Öffnen der Datei auf Folien zugreifen, und ein Add-In kann nicht erkennen, dass eine Datei beschädigt ist.

Wir haben bei Microsoft einen Fall eröffnet, aber bisher hat Microsoft nicht entschieden, das Problem zu beheben. Wenn Ihr Unternehmen mit Microsoft einen Servicevertrag für den Office-Support abgeschlossen hat und Sie sich wegen einer Lösung an Microsoft wenden möchten, geben Sie bitte folgende Microsoft-interne Fallnummer an: 115040112590053. Der Fehler lässt sich ohne thinkcell reproduzieren. Mehr lesen

Reproduktion ohne thinkcell

Der Fehler lässt sich ohne thinkcell reproduzieren, wenn ein Code auf die beschädigten Folien zugreift, bevor die Reparatur abgeschlossen ist. In der folgenden Reproduktion ruft der PresentationOpen-Ereignishandler beim Öffnen der Datei Code auf, der auf alle Folien zugreift, also vor der Reparatur.

  1. Öffnen Sie PowerPoint 2013 oder höher mit einer neuen leeren Datei.
  2. Gehen Sie in PowerPoint zu Insert > thinkcell > Tools Extras Menüsymbol > Deactivate thinkcell.
  3. Drücken Sie Alt + F11, um Microsoft Visual Basic for Applications zu öffnen.
  4. Fügen Sie diesen Code als Class Module hinzu und nennen Sie ihn cEventClass:

    Public WithEvents PPTEvent As Application
    
    Private Sub Class_Initialize()
        MsgBox "EventHandler ist jetzt aktiv."
    End Sub
    
    Private Sub PPTEvent_PresentationOpen(ByVal pres As Presentation)
        On Error GoTo errHandle:
        
        Debug.Print "Datei öffnen: " & pres.Name
        Dim i As Integer
        
        For i = 1 To pres.Slides.Count
            Debug.Print "Folie " & pres.Slides.Item(i).SlideNumber; " / " _ 
    	& pres.Slides.Count
        Next i
        
        Exit Sub
        
    errHandle:
        Debug.Print ("VBA-Fehler: " & Err.Number & " " & Err.Description) & vbCr
    End Sub

  5. Fügen Sie diesen Code als Module hinzu:

    Dim cPPTObject As New cEventClass
    
    Sub Initialize_Eventhandler()
        Set cPPTObject.PPTEvent = Application
        Debug.Print "**** EventHandler aktiv ****"
    End Sub

  6. Drücken Sie im PowerPoint-Präsentationsfenster Alt + F8, um das Fenster Macro zu öffnen
  7. Führen Sie das Makro Initialize_Eventhandler mit Run aus.
  8. Öffnen Sie nun Ihre beschädigte PowerPoint-Datei und versuchen Sie, sie zu reparieren.

Lösung

Bis Microsoft diesen Fehler behebt, können Sie thinkcell vorübergehend als Workaround deaktivieren:

  1. Deaktivieren Sie thinkcell in PowerPoint: Insert > thinkcell > Tools Extras Menüsymbol > Deactivate thinkcell
  2. Öffnen Sie Ihre beschädigte Datei und reparieren Sie sie.
  3. Aktivieren Sie thinkcell in PowerPoint wieder: Insert > thinkcell > Activate