在此图像调整大小的代码中:
Sub resize()
Dim i As Long
With ActiveDocument
For i = 1 To .InlineShapes.Count
With .InlineShapes(i)
.ScaleHeight = 50
.ScaleWidth = 50
End With
Next i
End With
End Sub
我想添加一个命令,将文本换行从默认(内联)更改为“顶部和底部”。我需要添加什么代码?
答案1
内联形状没有换行文本,只有常规形状才有,因此您必须转换内联形状。当以循环方式执行此操作时,宏设置为执行,文档中的内联形状总数会随着每次迭代而变化,并且会重新计算新的总数。在最好的情况下,这可能会减慢进程,在最坏的情况下,可能会遗漏对象。
解决方法是从最后一个内联形状向后推移到第一个。
Sub resize()
Dim i As Long, rng As Range
With ActiveDocument
For i = .InlineShapes.Count To 1 Step -1
With .InlineShapes(i)
.ScaleHeight = 50
.ScaleWidth = 50
Set rng = .Range
.ConvertToShape
rng.ShapeRange(1).WrapFormat.Type = wdWrapTopBottom
End With
Next i
End With
End Sub