Suman باید از یک ماکرو برای درج تصویر در صفحه 10 یک سند خاص استفاده کند. او در مورد بهترین راه، در کلان، برای انجام این کار متعجب است.
اگر می خواهید تصویر تنها مورد صفحه 10 باشد، کار نسبتاً آسان است: از ماکرو برای مکان یابی صفحه 10 استفاده کنید، تصویر را وارد کنید، و سپس یک صفحه شکسته را بعد از تصویر وارد کنید. سپس همه چیز پس از تصویر را با یک صفحه بالا می برد، به طوری که صفحه قدیمی 10 به صفحه 11، صفحه 11 تبدیل به صفحه 12 و غیره می شود.
Sub InsertImage1()
Dim PicPath As String
PicPath = "C:My PicturesMy Scansscan0002.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 PicturesMy Scansscan0002.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 PicturesMy Scansscan0002.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