VBA POWERPOINT:从powerpoint收缩Word图片

时间:2013-04-16 12:29:24

标签: vba word-vba powerpoint-vba

当我在word宏中使用它将所有图像缩小到9.3cm时,此功能起作用:

Sub ShrinkWordImages()
Dim iShp As InlineShape

For Each iShp In ActiveDocument.InlineShapes
    iShp.LockAspectRatio = msoTrue
    iShp.Width = CentimetersToPoints(9.3)
Next iShp

End Sub

但是当我尝试在powerpoint宏中运行它时,引用一个word文档(所有引用都已正确到位),word文档中的图像就会消失。 从powerpoint我使用它,它唯一的区别是:

For Each iShp In wrdDoc.InlineShapes

正确声明和设置wrdDoc的地方。

宏完成后,Powerpoint也会崩溃。 我尝试将iShp改为变体,但这没有帮助。

编辑:我现在已经确定CentimetersToPoints(9.3)在powerpoint中返回0,而在Word中返回263左右。现在调查一下。

2 个答案:

答案 0 :(得分:1)

PowerPoint中没有像CentimetersToPoint这样的内容,您可以根据自己的情况调用它。您需要引用Word对象变量来获取维度。也许是这样的:

Sub CentimetersTo_Word()

    Dim WRD As Object
    Set WRD = CreateObject("Word.Application")

    Debug.Print WRD.centimeterstopoints(10)

End Sub

因此,只需在CentimetersToPoint

之前添加Word应用程序参考

答案 1 :(得分:0)

只是制作了我自己的方法......并且有效。

Function CmToPt(pt As Single) As Single
CmToPt = pt * 28.35
End Function

不确定为什么正常的人没有工作,但这就行了。