如何在PowerPoint 2016 VBA中动态访问WebBrowser控件?

时间:2016-04-19 08:29:16

标签: vba powerpoint-vba

我正在尝试访问PowerPoint 2016 VBA中的幻灯片上的WebBrowser控件。

当我使用Slide1.WebBrowser1时,它工作正常。 E.g:

Slide1.WebBrowser1.Navigate varURL

但我希望代码适用于任何幻灯片。

但是当我使用SSW.View.Slide时,我似乎无法访问WebBrowser控件。我可以获得相关的Shape,但无法找到将其转换为WebBrowser的方法。这不起作用:

Dim sld As Slide
Set sld = SSW.View.Slide
sld.WebBrowser1.Navigate varURL

我可以通过强制转换或使用Shapes集合找不到上述内容的变体,这些集合产生了我可以调用的WebBrowser。导航。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

由于安全问题,自Office 2013以来,Microsoft默认禁用WebBrowser控件。试图插入它将产生错误消息:

“无法插入ActiveX控件。”

但你可以按照kb2793374调整注册表以使其再次运行,虽然不可取,因为这是一个安全风险,当然还有一个额外的问题,就是必须在每台机器上完成查看演示文稿上。

假设您已经完成此操作,WebBrowser控件对象将放置在幻灯片对象上,因此如果要在多个幻灯片上使用它,则需要在要使用它的所有幻灯片上复制该对象。

您可以通过引用VBA项目中的幻灯片来使用标准代码模块中的Navigate方法,如下所示:

Slide1.WebBrowser1.Navigate "http://google.com"

答案 1 :(得分:0)

查看此示例以获取对activex对象的引用 - http://skp.mvps.org/ppt00042.htm。您可以使用类似的方法来获取对Web浏览器控件的引用。