![如何在图片内容控件中设置默认图片宽度?](https://linux22.com/image/1387469/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%9B%BE%E7%89%87%E5%86%85%E5%AE%B9%E6%8E%A7%E4%BB%B6%E4%B8%AD%E8%AE%BE%E7%BD%AE%E9%BB%98%E8%AE%A4%E5%9B%BE%E7%89%87%E5%AE%BD%E5%BA%A6%EF%BC%9F.png)
我使用映射到 XML 数据源的 Word 2013 内容控件。其中一些控件位于映射到 XML 元素的重复部分内。
问题出在“图片”内容控件上。当我切换到“设计模式”然后恢复正常时,所有图片内容控件的图片大小都会更改为 5 厘米左右。之后我必须设置所有这些图片的宽度。但再次进入“设计模式”后,这些设置会被重置。
我想要的是这些内容控件中的所有图片的宽度都等于页面文本宽度的 100%。我该怎么做?
我尝试附加图片,但是
答案1
我创建了这个宏,在选定的文本中将所有内联图片的宽度设置为某个预定义值(在我的情况下为 16.5 厘米)。它看起来更像是一种变通方法,而不是真正的解决方案,因为每次进入“设计模式”后,我都必须选择重复部分中的所有图像(也可以选择其他内容,保持不变)并运行此宏。无论如何,总比没有好。
Sub ResizeImage()
Dim targetWidth As Single
Dim oILShp As InlineShape
targetWidth = 16.5
For Each oILShp In Selection.InlineShapes
With oILShp
.Height = AspectHt(.Width, .Height, CentimetersToPoints(targetWidth))
.Width = CentimetersToPoints(targetWidth)
End With
Next
End Sub
Private Function AspectHt(ByVal origWd As Single, ByVal origHt As Single, ByVal newWd As Single) As Single
If origWd <> 0 Then
AspectHt = origHt / origWd * newWd
Else
AspectHt = 0
End If
End Function