Inserimento di un’immagine in una pagina specifica (Microsoft Word)
Suman ha bisogno di usare una macro per inserire un’immagine a pagina 10 di un particolare documento. Si chiede quale sia il modo migliore, all’interno della macro, per farlo.
Se si desidera che l’immagine sia l’unica cosa a pagina 10, l’attività è piuttosto semplice: utilizzare la macro per individuare la pagina 10, inserire l’immagine e quindi inserire un’interruzione di pagina dopo l’immagine. Questo quindi sposta tutto dopo l’immagine di una pagina, in modo tale che la vecchia pagina 10 diventa pagina 11, pagina 11 diventa pagina 12 e così via.
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 inserisce l’immagine come una forma in linea. Se preferisci, puoi inserire l’immagine come una forma fluttuante, che consentirebbe al testo di avvolgere l’immagine. La seguente macro fa questo, oltre a centrare l’immagine al centro della pagina:
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
Se desideri che la tua immagine sostituisca un’immagine esistente (magari con un’immagine aggiornata), puoi farlo utilizzando una macro un po ‘più complessa.
La seguente macro individuerà la prima immagine nella pagina desiderata e la sostituirà con una forma in linea.
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 è la tua fonte di formazione economica su Microsoft Word.
(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (13139) si applica a Microsoft Word 2007, 2010, 2013, 2016, 2019 e Word in Office 365.