【问题标题】:VBA - Powerpoint 2010 ppShp.Fill.UserPicture does not update picturesVBA - Powerpoint 2010 ppShp.Fill.UserPicture 不更新图片
【发布时间】:2016-12-06 23:17:32
【问题描述】:

我有一个带有 VBA 脚本的 Powerpoint 演示文稿,用于每周更新图像。最近,我还添加了 2 张额外的幻灯片和脚本来更新这些图像。

新图像不会更新,也不会引发错误。如果我逐步完成该过程,它会转到正确的幻灯片,选择正确的形状,但是

Call ppShp.Fill.UserPicture ("blah_blah.png")

不替换图片。

如果我将该行复制到其中一张有效的幻灯片上,它确实有效。

在下面的示例中,第一个有效,第二个无效。

'FEOL *******************************************************************
    ActiveWindow.View.GotoSlide (15)
    Set ppShp = ActivePresentation.Slides(15).Shapes("FEOL")
    ppShp.Select
    Call ppShp.Fill.UserPicture("D:\MIT Trends\Images\Feol_Composite.png")

   'LICONSEM *******************************************************************
    ActiveWindow.View.GotoSlide (16)
    Set ppShp = ActivePresentation.Slides(16).Shapes("LICONSEM")
    ppShp.Select
    Call ppShp.Fill.UserPicture("D:\MIT Trends\Images\LICONSEM.png")

再次,我可以看到它转到正确的幻灯片并选择正确的形状(在“排列”面板中命名)。它只是没有填满。我尝试改变形状ID,但结果是一样的。我知道形状名称和图像名称是正确的。我什至尝试过剪切/粘贴来确定。

使用第一部分的图像填充第二部分不起作用。使用第二部分的图像来填充第一部分。我觉得我一定遗漏了一些明显的东西。

【问题讨论】:

  • 已修复但未解释。我复制了幻灯片 15 以创建新的幻灯片 16。我将形状名称复制到新的幻灯片 16 中,替换了旧的形状名称。现在它起作用了。我不明白两者之间的区别。
  • 这应该没关系,但是您是否尝试过在没有Call 的情况下执行此操作(您不需要使用此关键字来调用对象的方法。或者您可以尝试删除当前形状并按照答案之一here 中的建议添加带有图片的新形状

标签: image vba powerpoint


【解决方案1】:

请在附图中找到我的代码。 首先你需要在PPT中创建形状然后运行代码。

猜你喜欢
  • 2013-05-13
  • 1970-01-01
  • 1970-01-01
  • 2019-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-23
  • 2012-09-14
相关资源
最近更新 更多