Share via


Trabalhar com documentos parciais

Quando você abre uma apresentação com conteúdo grande em tamanho, o PowerPoint pode servir o documento em partes como documentos parciais. Isso permite que você abra, edite e colabore em documentos rapidamente, enquanto as partes de mídia maiores (por exemplo, vídeos), continuam a ser carregadas em segundo plano. Da mesma forma, como a mídia é tratada separadamente do restante do documento, a colaboração é mais suave quando a mídia é inserida durante uma sessão de colaboração.

Como determinado conteúdo pode ser adiado inicialmente, algumas ações não podem ser tomadas até que o conteúdo adiado seja carregado. Além disso, há determinadas ações como Salvar Como, Exportar para Vídeo etc. que não funcionará até que todo o conteúdo adiado seja baixado. Se você iniciar uma dessas operações, o PowerPoint exibirá a interface do usuário informando sobre o progresso do download, mas isso não é possível para operações programáticas. Se você tentar programaticamente chamar uma API para executar uma ação enquanto o conteúdo ainda estiver baixando, ele falhará.

Run-time error '-2147188128 (80048260)':
<object> (unknown member) : This method isn't supported until the presentation is fully downloaded. Visit this URL for more information: https://go.microsoft.com/fwlink/?linkid=2172228

Entender o estado totalmente baixado

Para entender se uma apresentação é totalmente baixada programaticamente, você pode consultar a propriedade Presentation.IsFullyDownloaded antes de chamar qualquer uma das APIs afetadas.

If ActivePresentation.IsFullyDownloaded Then
    MsgBox "Presentation download is complete."
Else
    MsgBox "PowerPoint is still downloading the presentation."
End If

Tratamento de erros

Você também pode adicionar algum tratamento de erro para capturar a falha e repetir a operação depois que a apresentação for totalmente baixada. Se o valor de erro for -2147188128 ou 0x80048260, a operação falhará porque a apresentação não foi totalmente baixada. Use Err.Number como uma chave para identificar essas falhas, conforme mostrado no exemplo a seguir.

Sub TestCopySlide()
    On Error GoTo eh    
    ActivePresentation.Slides(1).Copy    
    Exit Sub
eh:
    If Err.Number = -2147188128 Then
        MsgBox "Cannot copy because the presentation is not fully downloaded."
    Else
        MsgBox "Failure is due to a reason other than incomplete download: " & Err.Description.
    End If
    Debug.Print Err.Number, Err.Description
End Sub

APIs afetadas

Veja a seguir uma lista de chamadas de API de OM afetadas que podem retornar o código de erro:

Nome
Presentation.Export
Presentation.ExportAsFixedFormat
Presentation.ExportAsFixedFormat2
Presentation.SaveAs
Presentation.SaveCopyAs
Presentation.SaveCopyAs2
Presentation.Password
Presentation.WritePassword
Selection.Copy
Selection.Cut
Shape.Copy
Shape.Cut
ShapeRange.Cut
ShapeRange.Copy
Shapes.Paste
Shapes.PasteSpecial
Slide.Copy
Slide.Cut
Slide.Export
SlideRange.Copy
SlideRange.Cut
SlideRange.Export
Slides.Colar
CustomLayouts.Paste
View.Paste
View.PasteSpecial
MediaFormat.Resample
MediaFormat.ResampleFromProfile
Player.Play

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.