如何在 PowerPoint 中获取图像的位置,从厘米到 VBA 点
How to get position of image in PowerPoint from centimeters to points with VBA
所以我在幻灯片上有一张图片,我需要以磅为单位获取该图片的位置,但我只知道它以厘米为单位的位置。我需要这些点,以便我可以使用以下 VBA 代码将另一张图片直接放在上面:
Set myImageBox = mySlide.Shapes.AddPicture(ActivePresentation.Path & "\X.png", False, True, xPos, yPos, -1, -1)
其中 xPos
和 yPos
是我要叠加的图像的坐标。对于PPT,我VBA有点菜鸟
有什么想法吗?
默认情况下,用户界面中的 Office 测量值以磅为单位。没有转换,只是将 xPos 和 yPos 设置为点数。
但是,如果您尝试对齐的对象是手动定位的,则可能仍会存在轻微的错位。这是因为 Office 的内部测量主要以 EMU 为单位(360,000 个 EMU 等于 1 厘米,12,7000 个 EMU 等于 1 点)。您无法在 EMU 中设置或获取 VBA 测量值,而且点的准确性要低得多。
要获得完全匹配,您必须以编程方式将两个对象设置到相同的位置。
您可以在设置下一个对象之前从现有对象中提取位置。
X
可以使用.Left
Y 的 和 .Top
示例:
xPos = yourShape.Left
yPos = yourShape.Top
注意:
您需要找到该形状并将其分配给名为 yourShape
的 Object
才能使示例代码正常工作。
所以我在幻灯片上有一张图片,我需要以磅为单位获取该图片的位置,但我只知道它以厘米为单位的位置。我需要这些点,以便我可以使用以下 VBA 代码将另一张图片直接放在上面:
Set myImageBox = mySlide.Shapes.AddPicture(ActivePresentation.Path & "\X.png", False, True, xPos, yPos, -1, -1)
其中 xPos
和 yPos
是我要叠加的图像的坐标。对于PPT,我VBA有点菜鸟
有什么想法吗?
默认情况下,用户界面中的 Office 测量值以磅为单位。没有转换,只是将 xPos 和 yPos 设置为点数。
但是,如果您尝试对齐的对象是手动定位的,则可能仍会存在轻微的错位。这是因为 Office 的内部测量主要以 EMU 为单位(360,000 个 EMU 等于 1 厘米,12,7000 个 EMU 等于 1 点)。您无法在 EMU 中设置或获取 VBA 测量值,而且点的准确性要低得多。
要获得完全匹配,您必须以编程方式将两个对象设置到相同的位置。
您可以在设置下一个对象之前从现有对象中提取位置。
X
可以使用.Left
Y 的 和 .Top
示例:
xPos = yourShape.Left
yPos = yourShape.Top
注意:
您需要找到该形状并将其分配给名为 yourShape
的 Object
才能使示例代码正常工作。