Метод PictureFormat.Replace (Publisher)
Заменяет указанный рисунок. Возвращает значение Nothing.
Синтаксис
expression. Replace (PathName, InsertAs)
Выражение Переменная, представляющая объект PictureFormat .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
PathName | Обязательный | String | Имя и путь к файлу, которым требуется заменить указанный рисунок. |
InsertAs | Необязательный | PbPictureInsertAs | Способ вставки файла рисунка в документ: связанный или внедренный. Может быть одной из констант PbPictureInsertAs , объявленных в библиотеке типов издателя Майкрософт; значение по умолчанию — pbPictureInsertAsOriginalState. |
Замечания
Используйте метод Replace для обновления связанных файлов рисунков, которые были изменены с момента их вставки в документ.
Используйте свойство LinkedFileStatus , чтобы определить, было ли изменено связанное изображение.
Пример
В следующем примере каждое вхождение определенного рисунка в активной публикации заменяется другим рисунком.
Sub ReplaceLogo()
Dim pgLoop As Page
Dim shpLoop As Shape
Dim strExistingArtName As String
Dim strReplaceArtName As String
strExistingArtName = "C:\path\logo 1.bmp"
strReplaceArtName = "C:\path\logo 2.bmp"
For Each pgLoop In ActiveDocument.Pages
For Each shpLoop In pgLoop.Shapes
If shpLoop.Type = pbLinkedPicture Then
With shpLoop.PictureFormat
If .Filename = strExistingArtName Then
.Replace (strReplaceArtName)
End If
End With
End If
Next shpLoop
Next pgLoop
End Sub
В этом примере проверяется каждое связанное изображение, чтобы определить, был ли изменен связанный файл с момента его вставки в публикацию. Если он имеется, изображение обновляется путем замены файла самим собой.
Sub UpdateModifiedLinkedPictures()
Dim pgLoop As Page
Dim shpLoop As Shape
Dim strPictureName As String
For Each pgLoop In ActiveDocument.Pages
For Each shpLoop In pgLoop.Shapes
If shpLoop.Type = pbLinkedPicture Then
With shpLoop.PictureFormat
If .LinkedFileStatus = pbLinkedFileModified Then
strPictureName = .Filename
.Replace (strPictureName)
End If
End With
End If
Next shpLoop
Next pgLoop
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.