【问题标题】:How can I access WebBrowser control dynamically in PowerPoint 2016 VBA?如何在 PowerPoint 2016 VBA 中动态访问 WebBrowser 控件?
【发布时间】:2016-04-21 11:43:47
【问题描述】:

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

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

Slide1.WebBrowser1.Navigate varURL

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

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

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

我无法通过转换或使用生成 WebBrowser 的 Shapes 集合找到上述任何变体,我可以在其上调用 .Navigate。

谁能帮忙?

【问题讨论】:

    标签: vba powerpoint


    【解决方案1】:

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

    “无法插入 ActiveX 控件。”

    但是您可以根据kb2793374 调整注册表以使其再次工作,尽管这是不可取的,因为这是一个安全风险,当然还有一个额外的问题,即必须在每台查看演示文稿的机器上执行此操作。

    假设您已经这样做了,WebBrowser 控件对象被放置在一个幻灯片对象上,因此如果您想在多张幻灯片上使用它,您需要在所有要使用它的幻灯片上复制该对象.

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

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

    【讨论】:

    • 感谢您的回答,JamieG。正如我在问题中提到的那样,该方法运行良好,并且我已成功跳过箍以启用 WebBrowser 控件。我正在创建一个模板,因此不想将幻灯片显式称为 Slide1,而是从 SlideShowWindow 对象的 Slides 集合开始动态定位 WebBrowser 控件。你知道这是否可能吗?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      • 2013-09-05
      • 1970-01-01
      • 2019-02-06
      • 2019-04-03
      • 2018-08-19
      相关资源
      最近更新 更多