KB0209: Impossibile ripristinare il file PowerPoint con PowerPoint 2013 o versioni successive
- Home
- Risorse
- Knowledge base
- KB0209
Problema
PowerPoint non riesce a ripristinare un file PowerPoint danneggiato.
Spiegazione
Il ripristino dei file PowerPoint non riesce se si accede alle diapositive a livello di codice prima che PowerPoint le ripristini. Tuttavia, thinkcell e molto probabilmente anche altri componenti aggiuntivi devono accedere alle diapositive quando il file viene aperto e non esiste un modo per un componente aggiuntivo di sapere che un file è danneggiato.
Abbiamo aperto un caso presso Microsoft, ma finora Microsoft non ha deciso di correggerlo. Se la società ha un contratto di assistenza Microsoft Office e desidera contattare Microsoft per risolvere un errore, occorre fare riferimento al numero di caso Microsoft 115040112590053. L'errore può essere riprodotto senza thinkcell. Scopri di più
Riproduzione senza thinkcell
L'errore può essere riprodotto senza thinkcell se un qualsiasi codice accede alle diapositive danneggiate prima del completamento del ripristino. Nella riproduzione seguente, il gestore eventi PresentationOpen chiama il codice che accede a tutte le diapositive all'apertura del file, cioè prima del ripristino.
- Aprire PowerPoint 2013 o versione successiva con un nuovo file vuoto.
- In PowerPoint, passare a Insert > thinkcell > Tools
> Deactivate thinkcell.
- Premere Alt + F11 per aprire Microsoft Visual Basic for Applications.
-
Aggiungere questo codice come Class Module e assegnargli il nome
cEventClass:Public WithEvents PPTEvent As Application Private Sub Class_Initialize() MsgBox "Il gestore eventi è ora attivo." End Sub Private Sub PPTEvent_PresentationOpen(ByVal pres As Presentation) On Error GoTo errHandle: Debug.Print "apri file: " & pres.Name Dim i As Integer For i = 1 To pres.Slides.Count Debug.Print "Diapositiva " & pres.Slides.Item(i).SlideNumber; " / " _ & pres.Slides.Count Next i Exit Sub errHandle: Debug.Print ("Errore VBA: " & Err.Number & " " & Err.Description) & vbCr End Sub -
Aggiungere questo codice come Module:
Dim cPPTObject As New cEventClass Sub Initialize_Eventhandler() Set cPPTObject.PPTEvent = Application Debug.Print "**** Gestore eventi attivo ****" End Sub - Nella finestra della presentazione di PowerPoint, premere Alt + F8 per aprire la finestra Macro
- Run la macro Initialize_Eventhandler.
- Ora aprire il file PowerPoint danneggiato e tentare di ripristinarlo.
Soluzione
Finché Microsoft non corregge questo bug, è possibile disattivare temporaneamente thinkcell come soluzione alternativa:
- Disattivare thinkcell in PowerPoint: Insert > thinkcell > Tools
> Deactivate thinkcell
- Aprire il file danneggiato e ripararlo
- Riattivare thinkcell in PowerPoint: Insert > thinkcell > Activate