【问题标题】:Generating a powerpoint presentation with VBA and Excel使用 VBA 和 Excel 生成 powerpoint 演示文稿
【发布时间】:2015-12-28 07:36:49
【问题描述】:

我有一个关于 powerpoint 的模板演示文稿。 我想用我在链接的 Excel 工作表中输入的值自动替换通用占位符。

我从本周初开始研究 VBA,我对语法还不是很熟悉,但我很乐观我会找到理解它的方法。

我在任何我想输入值的地方都放了“[]”:

excel 工作表如下所示:

我想得到一些指导(首先,要知道它是否确实可以在 powerpoint 中使用)让我朝着正确的方向开始。

它需要是 PublicSub() 吗? 我是在 Powerpoint 上还是在 Excel 中编写宏?

我可以使用类似于 LookupV 的函数来获取替换占位符的值吗?

我想像这样的:

(附带问题:我可以在 VBA 中使用正则表达式吗?)

for each "\[.\]" '(or characterString.startsWith("[")
lookup characterString in excel, return column 3
end each

这可能吗?

在此先感谢您,非常感谢您的帮助。

【问题讨论】:

  • 不需要公共子,您可以在 Excel 或 PowerPoint 中工作(只需添加参考)。第一张图片是PowerPoint模板吗?如果您想在 PPT 中使用宏录制器,请下载旧版本(2003 年甚至 2007 年,但我不确定宏录制器是否还无法使用)。对于 VBA 中的正则表达式,请参阅 2 个热门答案:stackoverflow.com/questions/22542834/… 对于替换文本的方式,如果只是替换占位符,您可以使用 Excel 中的手动搜索语法作为开始。
  • 你试过书签吗?因此,如果您要将书签添加到您想要在 powerpoint 中的值的位置,然后在 excel 中添加类似 .Bookmarks("Bookmark1").Range.Text = "Whatever" .. 您需要为此声明 powerpoint 的位置。
  • @R3uK,是的,第一张图片是 ppt 模板,还有更多类似的页面,但占位符不同,其余的可能是相同的值,也可能不是相同的值。手动搜索 + ctrl H?
  • @Calum,不,我没试过,但我现在要去看看。谢谢
  • 试试 www.pptxbuilder.com

标签: excel vba automation powerpoint


【解决方案1】:

找到了一个近似的解决方案,但比写代码更简单。

  • 打开 Excel,
  • 填充值,并将它们复制到PowerPoint演示文稿中:在所需的单元格(或单元格/单元格范围)之间使用特殊的粘贴选项。
  • 选择“粘贴链接”选项以及对象工作表 Excel,选择“确定”。

这两个文件将被链接。您可以在 Excel 中更改值,它们也会在 powerpoint 中更改。格式化是在excel上完成的。

为了在excel上修改完powerpoint中的所有值后更新,需要重新运行powerpoint,并在应用程序重启时,接受更新框提示。

我发现这比其他解决方案更简单。

【讨论】:

  • 确实更简单,但要小心 Office 文档之间的链接!我用 Word 做了很多报告(也用 PowerPoint 做了一些报告),但是这些链接在我的经验/意见中非常不稳定。我无法计算我不得不重做整个模板的次数,因为链接莫名其妙地崩溃了......所以要小心(刷新后总是检查),完成后,将输出另存为副本其他地方,然后断开所有链接并重新保存。
  • 如果两个文件的位置没有变化,应该没有问题,或者更少,对吧?
  • 更好,但我不会在任何问题上打赌...也许 PowerPoint 比 Word 更稳定...我希望如此!
  • 您必须将代码放入 Excel,因为您将使用工作簿中发生的事件,进入 ThisWorkbook 模块并寻找最适合您和您的触发器可以简单地Call 存储在常规模块中的过程,您将在其中执行实际操作(打开 ppt,刷新所有链接,保存,关闭 ppt,退出 ppt 应用程序)。如果您希望它自动完成,是的,您必须编写代码。但如果是一个月更新5次,那可能没必要,只有你自己知道!
  • @R3uK 当我在修改了 excel 表后打开 powerpoint 时,ppt 询问我是否要更新链接。我认为这就是我正在寻找的。无论如何,非常感谢您的帮助和投入。不胜感激。
猜你喜欢
  • 2020-07-12
  • 2020-03-05
  • 1970-01-01
  • 2017-05-30
  • 1970-01-01
  • 2015-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多