0

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

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 左右。现在正在调查。

4

2 回答 2

1

CentimetersToPoint在您的情况下,没有什么比 PowerPoint 更适合您了。您需要参考您的 Word 对象变量来获取维度。也许是这样的:

Sub CentimetersTo_Word()

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

    Debug.Print WRD.centimeterstopoints(10)

End Sub

因此,只需在之前添加您的 Word 应用程序参考CentimetersToPoint

于 2013-04-16T12:59:30.633 回答
0

刚做了我自己的方法……它奏效了。

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

不知道为什么正常的不工作,但这成功了。

于 2013-04-16T12:57:36.057 回答