Compartir a través de


Método PictureFormat.Replace (Publisher)

Reemplaza la imagen especificada. Devuelve el valor Nothing.

Sintaxis

expresión. Replace (PathName, InsertAs)

Expresión Variable que representa un objeto PictureFormat .

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
PathName Obligatorio String Nombre y ruta de acceso del archivo con el que desea reemplazar la imagen especificada.
InsertAs Opcional PbPictureInsertAs Modo en que se desea insertar el archivo de imagen en el documento: vinculado o incrustado. Puede ser una de las constantes PbPictureInsertAs declaradas en la biblioteca de tipos de Microsoft Publisher; el valor predeterminado es pbPictureInsertAsOriginalState.

Comentarios

Utilice el método Replace para actualizar los archivos de imagen vinculados que se han modificado desde que se insertaron en el documento.

Use la propiedad LinkedFileStatus para determinar si se ha modificado una imagen vinculada.

Ejemplo:

En el siguiente ejemplo se reemplazan las instancias de una imagen específica de la publicación activa por otra imagen.

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

En este ejemplo se comprueba cada imagen vinculada para determinar si el archivo vinculado se ha modificado desde que se insertó en la publicación. En caso afirmativo, se actualiza la imagen reemplazando el archivo por él mismo.

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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.