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

Problem

Eine beschädigte PowerPoint-Datei kann nicht in PowerPoint repariert werden.

Erklärung

Die Reparatur von PowerPoint-Dateien schlägt fehl, wenn programmgesteuert auf Folien zugegriffen wird, bevor diese von PowerPoint repariert werden. Allerdings muss think-cell (wie andere Add-ins wahrscheinlich auch) auf Folien zugreifen, wenn die Datei geöffnet wird. Und für ein Add-in gibt es keine Möglichkeit, zu erkennen, dass eine Datei beschädigt ist.

Wir haben bereits eine Anfrage an Microsoft gestellt, aber bislang hat sich Microsoft noch nicht entschlossen, dieses 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 think-cell reproduzieren. Mehr lesen

Reproduktion ohne think-cell

Der Fehler kann auch ohne think-cell reproduziert werden, wenn ein beliebiger Code auf die beschädigten Folien zugreift, bevor die Reparatur abgeschlossen ist. In der folgenden Reproduktion ruft der PresentationOpen-Ereignishandler einen Code auf, der auf alle Folien zugreift, wenn die Datei geöffnet wird (d. h. vor der Reparatur).

  1. Öffnen Sie PowerPoint 2013 oder höher mit einer neuen, leeren Datei.
  2. In PowerPoint gehen Sie zu Insert > think-cell > Tools Tools Menu icon > Deactivate think-cell.
  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 geben Sie ihm den Namen cEventClass:

    Public WithEvents PPTEvent As Application
    
    Private Sub Class_Initialize()
        MsgBox "EventHandler is now active."
    End Sub
    
    Private Sub PPTEvent_PresentationOpen(ByVal pres As Presentation)
        On Error GoTo errHandle:
        
        Debug.Print "open file: " & pres.Name
        Dim i As Integer
        
        For i = 1 To pres.Slides.Count
            Debug.Print "Slide " & pres.Slides.Item(i).SlideNumber; " / " _ 
    	& pres.Slides.Count
        Next i
        
        Exit Sub
        
    errHandle:
        Debug.Print ("VBA Error: " & 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 active ****"
    End Sub

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

Lösung

Solange Microsoft diesen Fehler nicht behebt, können Sie als Workaround think-cell vorübergehend deaktivieren:

  1. think-cell in PowerPoint deaktivieren: Insert > think-cell > Tools Tools Menu icon > Deactivate think-cell
  2. Öffnen Sie die beschädigte Datei, und reparieren Sie sie.
  3. think-cell in PowerPoint erneut aktivieren: Insert > think-cell > Activate