Knowledge base KB0209

Não consigo reparar meu arquivo do PowerPoint com o PowerPoint 2013 e 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 Microsoft115040112590053. 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.

  1. Abra o PowerPoint 2013 ou 2016 com um novo arquivo vazio.
  2. No PowerPoint, vá para Inserirthink-cellMais Menu MaisDesativar o think-cell.
  3. Pressione Alt + F11 para abrir o Microsoft Visual Basic for Applications.
  4. Adicione esse código como um Módulo classe e atribua a ele o 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) & vbCrLf
    End Sub
  5. 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
  6. Na janela de apresentação do PowerPoint, pressione Alt + F8 para abrir a janela Macro
  7. Execute a macro Initialize_Eventhandler.
  8. 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.

  1. Para desativar o think-cell no PowerPoint: Inserirthink-cellMais Menu MaisDesativar o think-cell
  2. Abra o arquivo do computador e faça a reparação
  3. Reativar o think-cell no PowerPoint: Inserirthink-cellAtivar