Ich kann meine PowerPoint-Datei mit PowerPoint 2013 und 2016 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.
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).
- Öffnen Sie PowerPoint 2013 oder 2016 mit einer neuen, leeren Datei.
- In PowerPoint gehen Sie zu Insert > think-cell > Tools > Deactivate think-cell.
- Öffnen Sie Microsoft Visual Basic für Applikationen durch Drücken von Alt + F11.
-
Fügen Sie diesen Code als Klassenmodul 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
-
Fügen Sie diesen Code als Modul hinzu:
Dim cPPTObject As New cEventClass Sub Initialize_Eventhandler() Set cPPTObject.PPTEvent = Application Debug.Print "**** EventHandler active ****" End Sub
- Drücken Sie im Präsentationsfenster von PowerPoint auf Alt+F8, um das Makrofenster zu öffnen.
- Führen Sie das Makro Initialize_Eventhandler aus.
- Öffnen Sie nun Ihre beschädigte PowerPoint-Datei und versuchen Sie, diese zu reparieren.
Bei Microsoft Office 2010 tritt dieses Problem nicht auf.
Lösung
Solange Microsoft diesen Fehler nicht behebt, können Sie als Workaround think-cell vorübergehend deaktivieren:
- think-cell in PowerPoint deaktivieren: Insert > think-cell > Tools > Deactivate think-cell
- Öffnen Sie die beschädigte Datei, und reparieren Sie sie
- think-cell in PowerPoint erneut aktivieren: Einfügen → think-cell → Aktivieren