Вставка изображения на определенную страницу (Microsoft Word)
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.