【问题标题】:VBA to move ppt object to a specific locationVBA将ppt对象移动到特定位置
【发布时间】:2019-10-02 15:21:04
【问题描述】:

我正在使用 VBA 将 Access 中的计算推送到模板 powerpoint 演示文稿中的图表、图形和表格中。这些对象在 Access 中使用特定名称、字体大小、图表类型等的表格进行操作。我遇到的问题是在 powerpoint 中移动我的命名对象。由于我使用的是 powerpoint 模板,因此我有需要将对象移动到的特定幻灯片。一些幻灯片有多个形状/对象的空间,不一定按特定的幻灯片顺序。形状在演示文稿中命名。我找不到将对象/形状移动到指定位置的命令。

我发现的最接近的东西类似于:

    ActivePresentation.Slides(2).MoveTo to Pos:=1

但是,这会移动整个幻灯片,而不仅仅是表格、图形或图表。同样,由于幻灯片顺序可能会改变,我需要使用对象的名称和幻灯片中的形状名称来连接两者。我应该研究的任何命令都会有所帮助!蒂亚!

【问题讨论】:

    标签: vba object powerpoint shapes


    【解决方案1】:

    PPT 幻灯片上形状的位置和大小由形状的 .Top、.Left、.Height 和 .Width 属性控制(以 Points 为单位指定,72 磅为英寸)。

    假设您知道幻灯片的索引和形状的名称,这会将其移动到距幻灯片顶部 1" 和距幻灯片左边缘 1" 处:

    With ActivePresentation.Slides(2).Shapes("YourShapeName")
      .Top = 72
      .Left = 72
    End With
    

    【讨论】:

    • 谢谢。我希望能够按名称指向一个位置,以防用户在模板中移动它。不过我可能不得不走坐标路线……
    • 侧面/相关问题:是否有可能知道用户在幻灯片上点击了哪个坐标?
    • 可能有一个 Windows API 函数可以帮助解决这个问题;我认为,虽然您可以通过 VBA 获取光标位置,但您不能捕获鼠标单击事件。
    • 您也可以考虑为要“保护”其位置的形状添加标签。标签可以存储每个形状的顶部/左侧/高度/宽度属性。一个相当简单的例程可以检查每张幻灯片上的每个形状,如果它包含定位标签,则将形状移动到所需位置。
    猜你喜欢
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    • 2015-08-30
    • 2018-03-20
    • 2011-01-15
    • 1970-01-01
    相关资源
    最近更新 更多