Insertar una imagen en una página específica (Microsoft Word)
Suman necesita usar una macro para insertar una imagen en la página 10 de un documento en particular. Se pregunta cuál es la mejor manera, dentro de la macro, de hacer esto.
Si desea que la imagen sea lo único en la página 10, entonces la tarea es bastante fácil: use la macro para ubicar la página 10, inserte la imagen y luego inserte un salto de página después de la imagen. Esto luego aumenta todo después de la imagen en una página, de modo que la antigua página 10 se convierte en la página 11, la página 11 se convierte en la página 12, y así sucesivamente.
Sub InsertImage1() Dim PicPath As String PicPath = "C:\My Pictures\My Scans\scan0002.jpg" ActiveDocument.GoTo(What:=wdGoToPage, Count:=10).Select Selection.InlineShapes.AddPicture FileName:=PicPath, _ LinkToFile:=False, SaveWithDocument:=True Selection.InsertBreak Type:=wdPageBreak End Sub
La macro inserta la imagen como una forma en línea. Si lo prefiere, puede insertar la imagen como una forma flotante, lo que permitiría que el texto se envuelva alrededor de la imagen. La siguiente macro hace eso, además de centrar la imagen en el centro de la página:
Sub InsertImage2() Dim PicPath As String Dim aShape As Shape PicPath = "C:\My Pictures\My Scans\scan0002.jpg" ActiveDocument.GoTo(What:=wdGoToPage, Count:=10).Select Set aShape = Selection.InlineShapes.AddPicture(FileName:=PicPath, _ LinkToFile:=False, SaveWithDocument:=True).ConvertToShape With aShape .WrapFormat.Type = wdWrapTight .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage .RelativeVerticalPosition = wdRelativeVerticalPositionPage .Top = wdShapeCenter .Left = wdShapeCenter .Select End With End Sub
Si desea que su imagen reemplace una imagen existente (tal vez con una imagen actualizada), puede hacerlo utilizando una macro un poco más compleja.
La siguiente macro ubicará la primera imagen en la página deseada y la reemplazará con una forma en línea.
Sub ReplaceImage() Dim r1 As Range Dim r2 As Range Dim nPages As Long Dim nP As Long Dim PicPath As String Dim sTemp As String PicPath = "C:\My Pictures\My Scans\scan0002.jpg" nP = 10 ' Page number on which to replace the image sTemp = "" nPages = ActiveDocument.ComputeStatistics(statistic:=wdStatisticPages) If nP > nPages Then sTemp = "You are trying to go to a non-existent page" Else Set r1 = ActiveDocument.GoTo(What:=wdGoToPage, Count:=nP) If nP = nPages Then Set r2 = ActiveDocument.Range r1.End = r2.End Else Set r2 = ActiveDocument.GoTo(What:=wdGoToPage, Count:=nP + 1) r1.End = r2.Start - 2 End If If r1.InlineShapes.Count = 0 Then sTemp = "Page " & nP & " does not have an inline picture" Else r1.InlineShapes(1).Select Selection.InlineShapes.AddPicture FileName:=PicPath, _ LinkToFile:=False, SaveWithDocument:=True End If End If If sTemp > "" Then MsgBox sTemp End Sub
WordTips es su fuente de formación rentable en Microsoft Word.
(Microsoft Word es el software de procesamiento de texto más popular del mundo). Este consejo (13139) se aplica a Microsoft Word 2007, 2010, 2013, 2016, 2019 y Word en Office 365.