我有一些大型文档,每个文档都有+50张图像。问题在于它们大多数是浮动图像。位置不错,但图像锚定在错误的位置(通常固定在页面的最后一行)。我想将所有锚点移动到图片浮动的位置。
(更精确的描述,来自注释:我想读取图像的位置并将其锚点移到该位置。因此,如果图像位于第3页的中间,而其锚点位于第3页的底部,则我想要将锚点移到此页面的中间。并对所有图像执行相同的操作。)
有可能吗?
我无法使它们内联,这会更改文档的结构。 我试图将它们移动一些值,但是宏不会更改锚点的位置。
答案 0 :(得分:2)
尝试:
Sub Demo()
Application.ScreenUpdating = False
Dim i As Long, vPos As Single, Rng As Range
With ActiveDocument
For i = .Shapes.Count To 1 Step -1
With .Shapes(i)
.RelativeVerticalPosition = wdRelativeVerticalPositionPage: vPos = .Top
With .Anchor
If .Information(wdVerticalPositionRelativeToPage) > vPos Then
Set Rng = .Paragraphs.First.Range
Set Rng = Rng.GoTo(What:=wdGoToBookmark, Name:="\page")
With Rng
Do While .Paragraphs(1).Range.Characters.Last.Information(wdVerticalPositionRelativeToPage) < vPos
.Start = .Paragraphs(1).Range.End
Loop
.Collapse wdCollapseStart
End With
Rng.FormattedText = .FormattedText
.Delete
End If
End With
End With
Next
End With
Application.ScreenUpdating = True
End Sub