Não consigo reparar meu arquivo do PowerPoint com o PowerPoint 2013 & 2016
Problema
O PowerPoint não repara um arquivo PowerPoint corrompido.
Explicação
A correção de arquivos do PowerPoint irá falhar se os slides forem acessados programaticamente antes do PowerPoint repará-los. Entretanto, o think-cell, e provavelmente também outros suplementos, devem acessar os slides quando um arquivo for aberto e não houver jeito de o suplemento saber que o arquivo está corrompido.
Preenchemos uma solicitação para a Microsoft, mas até agora a Microsoft ainda não corrigiu isso. Se sua empresa tiver um contrato de suporte do Microsoft Office e você desejar entrar em contato com a Microsoft para solicitar uma correção, consulte o número de caso na Microsoft 115040112590053. O erro pode ser reproduzido sem o think-cell.
Reprodução sem o think-cell
O erro pode ser reproduzido sem o think-cell se algum código acessar os slides corrompidos antes de a correção ter terminado. Na reprodução a seguir, o controlador do evento PresentationOpen chama o código que está acessando todos os slides quando o arquivo abre, isto é, antes da correção.
- Abra o PowerPoint 2013 ou 2016 com um novo arquivo vazio.
- No PowerPoint, vá para Insert > think-cell > Tools > Deactivate think-cell.
- Pressione Alt + F11 para abrir o Microsoft Visual Basic for Applications.
-
Adicione esse código como um Módulo de classe e atribua-lhe um nome
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
-
Adicione esse código como um Módulo:
Dim cPPTObject As New cEventClass Sub Initialize_Eventhandler() Set cPPTObject.PPTEvent = Application Debug.Print "**** EventHandler active ****" End Sub
- Na janela de apresentação do PowerPoint, pressione Alt + F8 para abrir a janela Macro
- Execute a macro Initialize_Eventhandler.
- Agora abra seu arquivo do PowerPoint corrompido e tente repará-lo.
Esse problema não ocorre com o Microsoft Office 2010.
Solução
Até que a Microsoft corrija esse erro, você pode temporariamente desativar o think-cell como uma solução alternativa.
- Para desativar o think-cell no PowerPoint: Insert > think-cell > Tools > Deactivate think-cell
- Abra o arquivo do computador e faça a reparação
- Reativar o think-cell no PowerPoint: Inserir → think-cell → Ativar