Suman muss ein Makro verwenden, um ein Bild auf Seite 10 eines bestimmten Dokuments einzufügen. Er fragt sich, wie er innerhalb des Makros am besten vorgehen kann.

Wenn Sie möchten, dass nur das Bild auf Seite 10 angezeigt wird, ist die Aufgabe recht einfach: Verwenden Sie das Makro, um Seite 10 zu suchen, das Bild einzufügen und nach dem Bild einen Seitenumbruch einzufügen. Dies stößt dann alles nach dem Bild um eine Seite an, so dass die alte Seite 10 zu Seite 11 wird, Seite 11 zu Seite 12 wird und so weiter.

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

Das Makro fügt das Bild als Inline-Form ein. Wenn Sie möchten, können Sie das Bild als schwebende Form einfügen, sodass Text um das Bild gewickelt werden kann. Das folgende Makro erledigt dies und zentriert das Bild in der Mitte der Seite:

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

Wenn Sie möchten, dass Ihr Bild ein vorhandenes Bild ersetzt (möglicherweise durch ein aktualisiertes Bild), können Sie dies mit einem etwas komplexeren Makro tun.

Das folgende Makro sucht das erste Bild auf der gewünschten Seite und ersetzt es durch eine Inline-Form.

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 ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.

(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (13139) gilt für Microsoft Word 2007, 2010, 2013, 2016, 2019 und Word in Office 365.