Suman необходимо использовать макрос, чтобы вставить изображение на страницу 10 определенного документа. Он задается вопросом, как лучше всего в макросе сделать это.

Если вы хотите, чтобы изображение было единственным на странице 10, задача довольно проста: используйте макрос, чтобы найти страницу 10, вставить изображение, а затем вставить разрыв страницы после изображения. Это затем поднимает все после изображения на страницу, так что старая страница 10 становится страницей 11, страница 11 становится страницей 12 и так далее.

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

Макрос вставляет изображение как встроенную фигуру. Если хотите, вы можете вставить изображение как плавающую фигуру, которая позволит тексту обтекать изображение. Следующий макрос делает это, а также центрирует изображение в центре страницы:

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

Если вы хотите, чтобы ваше изображение заменяло существующее изображение (возможно, обновленное изображение), вы можете сделать это, используя более сложный макрос.

Следующий макрос найдет первое изображение на нужной странице и заменит его встроенной фигурой.

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 — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (13139) применим к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365.