修改 MS Word 中的 VB 代码以更改图像文本换行

修改 MS Word 中的 VB 代码以更改图像文本换行

在此图像调整大小的代码中:

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

相关内容