Работа с частичными документами

При открытии презентации с содержимым большого размера PowerPoint может по частям обслуживать документ как частичные документы. Это позволяет быстро открывать, редактировать и совместно работать над документами, а более крупные части мультимедиа (например, видео) продолжают загружаться в фоновом режиме. Аналогичным образом, так как мультимедиа обрабатываются отдельно от остальной части документа, совместная работа будет более гладкой при вставке мультимедиа во время сеанса совместной работы.

Так как определенное содержимое может быть отложено изначально, некоторые действия не могут выполняться до загрузки отложенного содержимого. Кроме того, существуют определенные действия, такие как сохранение как, экспорт в видео и т. д. не будет функционировать до тех пор, пока не будет загружено все отложенное содержимое. Если вы инициируете одну из этих операций, PowerPoint отобразит пользовательский интерфейс с информацией о ходе скачивания, но это невозможно для программных операций. Если программным способом попытаться вызвать API для выполнения действия во время загрузки содержимого, произойдет сбой.

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

Общие сведения о состоянии полного скачивания

Чтобы понять, полностью ли загружается презентация программным способом, можно запросить свойство Presentation.IsFullyDownloaded перед вызовом любого из затронутых API.

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

Обработка ошибок

Вы также можете добавить обработку ошибок, чтобы зафиксировать ошибку и повторить операцию после полного скачивания презентации. Если значение ошибки равно -2147188128 или 0x80048260, операция завершилась сбоем, так как презентация загружена не полностью. Используйте Err.Number в качестве ключа для выявления этих сбоев, как показано в следующем примере.

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

Затронутые API

Ниже приведен список затронутых вызовов API OM, которые могут возвращать код ошибки.

Имя
Presentation.Export
Presentation.ExportAsFixedFormat
Presentation.ExportAsFixedFormat2
Presentation.SaveAs
Presentation.SaveCopyAs
Presentation.SaveCopyAs2
Presentation.Password
Presentation.WritePassword
Selection.Copy
Выделение.Вырезать
Shape.Copy
Фигура.Вырезать
ShapeRange.Cut
ShapeRange.Copy
Shapes.Paste
Shapes.PasteSpecial
Slide.Copy
Слайд.Вырезать
Slide.Export
SlideRange.Copy
SlideRange.Cut
SlideRange.Export
Slides.Paste
CustomLayouts.Paste
View.Paste
View.PasteSpecial
MediaFormat.Resample
MediaFormat.ResampleFromProfile
Player.Play

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.