Поделиться через


Метод 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 и обратная связь.