当我在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左右。现在开始调查。
发布于 2013-04-16 12:59:30
在CentimetersToPoint中,没有什么比在您的情况下调用的PowerPoint更好了。您需要引用Word对象变量才能获得维度。也许是这样的:
Sub CentimetersTo_Word()
Dim WRD As Object
Set WRD = CreateObject("Word.Application")
Debug.Print WRD.centimeterstopoints(10)
End Sub因此,只需在CentimetersToPoint之前添加Word应用程序引用即可
发布于 2013-04-16 12:57:36
我自己做的method...and成功了。
Function CmToPt(pt As Single) As Single
CmToPt = pt * 28.35
End Function不知道为什么普通的不起作用,但这起作用了。
https://stackoverflow.com/questions/16037101
复制相似问题