Word VBA:根据样式调整所有内嵌形状的大小

时间:2014-05-15 05:23:00

标签: image ms-word word-vba

我编写了超过200个屏幕截图的大型软件手册。我试图自动化一些图像格式。

我在Techsmith SnagIt中编辑图片然后粘贴到Word中。我不想在Snagit中设置大小,因为我需要灵活地在Word中移动它们。

我发现以下代码根据现有宽度调整文档中所有图像的大小。

Sub PicSize_ALL_17cm()
Dim š As InlineShape
Dim Aspect As Double
For Each š In ActiveDocument.InlineShapes
    Aspect = š.Width / š.Height
    If (š.Width > CentimetersToPoints(11)) Then
        š.Width = CentimetersToPoints(11)
        š.Height = š.Width / Aspect
    End If
Next š
End Sub

虽然大多数图像被定义为11厘米,但有时我需要它们保持页面的整个宽度。

我希望我可以在粘贴它们时为这些“全宽”屏幕截图分配不同的样式,然后在上面添加一些代码以忽略基于该样式的图像。

有什么想法吗?

干杯,

编剧

1 个答案:

答案 0 :(得分:0)

确保在图像上放置一个字符样式,以便在粘贴时保留大小。然后假设您已经设置了一个名为Preserve的字符样式,您可以使用类似的代码。

Sub PicSize_ALL_17cm()
Dim š As InlineShape
Dim Aspect As Double
For Each š In ActiveDocument.InlineShapes
    if s.Range.Style <> "Preserve" then
         Aspect = š.Width / š.Height
         If (š.Width > CentimetersToPoints(11)) Then
             š.Width = CentimetersToPoints(11)
             š.Height = š.Width / Aspect
         End If
    End If
Next š
End Sub