IE.navigate2在关闭保护模式时失败

时间:2011-08-02 08:31:11

标签: vba internet-explorer-8 excel-2010

我正在使用Excel VBA(Excel 2010,Windows 7)自动化IE8

Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate2 URL

如果URL是IE保护模式所在区域中的网站,则一切正常。

如果URL是IE保护模式关闭的区域中的网站,则脚本失败(IE变为自动可见,IE对象在VBA中丢失 - 自动化错误)。

有没有办法在保护模式关闭的区域中启用navigate2?

2 个答案:

答案 0 :(得分:10)

您要做的是创建一个以中等完整性运行的IE实例,然后导航它。通常,您可以使用CoCreateInstance(CLSID_InternetExplorerMedium)来实现。目前,没有ProgID指向此CLSID,但是,您可以轻松创建一个:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\InternetExplorer.ApplicationMedium]

[HKEY_CLASSES_ROOT\InternetExplorer.ApplicationMedium\CLSID]
@="{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}"

然后你可以这样调用这个对象:

CreateObject("InternetExplorer.ApplicationMedium")

我在这里解释得更充分:http://blogs.msdn.com/b/ieinternals/archive/2011/08/03/internet-explorer-automation-protected-mode-lcie-default-integrity-level-medium.aspx

答案 1 :(得分:7)

通过CLSID获取InternetExplorer.ApplicationMedium:

Set IE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")