【问题标题】:Sane way of copying shapes between PowerPoint presentations在 PowerPoint 演示文稿之间复制形状的合理方法
【发布时间】:2013-03-04 22:32:46
【问题描述】:

我在这里和那里看到很多建议使用Copy()Paste() 方法在幻灯片、演示文稿和应用程序之间复制形状:

这些方法工作正常,但有副作用,因为它们在未经用户同意的情况下与剪贴板交互。当程序在后台运行一系列复制粘贴操作时,用户无法使用剪贴板。

我一直在寻找备份和恢复剪贴板的可能性,但看起来方法不对(seetheseanswers)。不使用剪贴板进行复制的另一个原因是,如果用户在我们调用 Paste() 之前将某些内容复制到剪贴板,我们最终会得到错误的结果。

有没有理智的方法?

【问题讨论】:

    标签: vba powerpoint copy-paste


    【解决方案1】:

    您可以想象对形状使用 .Export 方法将其导出为例如 EMF,然后将其作为图片插入到目标幻灯片中。但是,这不会给您与复制/粘贴形状相同的结果。

    我不会太担心用户在您的程序复制/粘贴之间复制某些内容。即使 PPT 允许这样做(我不确定它会不会),您的复制/粘贴操作也几乎是瞬间完成的。

    这仍然存在不删除用户可能放在剪贴板上的任何其他内容的问题。 Office 维护自己的剪贴板,独立于 Windows 系统剪贴板,但除了一条评论之外,我找不到任何关于如何以编程方式控制它的信息。来自我信任的消息来源的一条评论说你不能,至少在 2000 年以后的 Office 版本中不能。但你可能需要进一步研究。

    【讨论】:

    • 形状对象上没有.Export方法。
    • 有。您必须进入对象浏览器(在 IDE 中按 F2)然后右键单击对象浏览器中的任意位置并选择显示隐藏的成员。然后智能感知将向您展示形状的 .Export 方法。
    • 对象浏览器中没有“显示隐藏成员”。请看我的截图dropbox.com/s/4x8vnpk29l6u6sv/screenshot.png?dl=0
    • 我在对象浏览器中找到了一个选项来显示隐藏的类型和成员。但是,Visual Studio 没有显示 .Export 方法。
    • 在这种情况下,您可能不得不采取狡猾的手段。请注意要导出的形状的尺寸。添加新的(可选隐藏)演示文稿并设置其尺寸以匹配形状,然后将形状复制/粘贴到新演示文稿中并使用 Slide.Export 方法保存为图形。但这让我们回到剪贴板问题,所以它可能不会。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 2020-07-12
    • 1970-01-01
    • 2023-02-24
    • 2014-01-26
    • 2016-05-10
    • 1970-01-01
    相关资源
    最近更新 更多