Работа с неполными документами
При открытии презентации с содержимым большого размера 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, которые могут возвращать код ошибки.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.