Trabalhar com documentos parciais
Quando abre uma apresentação com conteúdo de tamanho grande, o PowerPoint pode servir o documento em partes como documentos parciais. Isto permite-lhe abrir, editar e colaborar em documentos rapidamente, enquanto as partes de multimédia maiores (por exemplo, vídeos) continuam a ser carregadas em segundo plano. Da mesma forma, uma vez que os suportes de dados são processados separadamente do resto do documento, a colaboração é mais suave quando os suportes de dados são inseridos durante uma sessão de colaboração.
Uma vez que determinado conteúdo pode ser diferido inicialmente, algumas ações só podem ser tomadas depois de o conteúdo diferido ser carregado. Além disso, existem determinadas ações, como Guardar Como, Exportar para Vídeo, etc. que não funcionarão até que todos os conteúdos diferidos sejam transferidos. Se iniciar uma destas operações, o PowerPoint apresentará a IU a informá-lo sobre o progresso da transferência, mas isso não é possível para operações programáticas. Se tentar chamar programaticamente uma API para executar uma ação enquanto o conteúdo ainda está a ser transferido, este 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
Compreender o estado de transferência total
Para compreender se uma apresentação é totalmente transferida programaticamente, pode consultar a propriedade Apresentação.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
Também pode adicionar algum processamento de erros para capturar a falha e repetir a operação assim que a apresentação for totalmente transferida. Se o valor de erro for -2147188128
ou 0x80048260
, a operação falhou porque a apresentação não foi totalmente transferida.
Utilize Err.Number como chave para identificar estas falhas, conforme mostrado no exemplo seguinte.
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
Segue-se uma lista de chamadas à API OM afetadas que podem devolver o código de erro:
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.