使用VBA从Excel电子表格自动执行Internet Explorer会话

其与Windows的集成允许使用Visual Basic for Applications(VBA)脚本从支持它的任何应用程序(如Word,Outlook或Excel)中以多种令人惊讶的方式控制Internet Explorer。

VBA自动化-尤其是直接自动化IE等浏览器的自动化-正是将VBA从便捷的编程脚本提升为强大的自动化语言的一种方式。之所以如此出色,是因为创建许多带有控件或对象的应用程序仅仅是为了让您使用VBA编程语言将其集成。

多年来,我们向您展示了如何使用VBA做一些非常酷的事情。例如,您可以使用它直接从Excel内部发送电子邮件!也不只是微软产品。从Adobe Acrobat SDK到AutoCAD的ObjectARX SDK,各种各样的供应商提供了第三方应用程序,它们已经将VBA和兼容的对象集成到他们的软件中。 p>

想法

在这种情况下,您将要将Excel与IE连接。为什么是IE?由于Internet Explorer已与操作系统很好地集成在一起,因此您实际上不必做很多事情就可以在Word或Excel等其他Microsoft产品中开始在VBA中使用IE自动化。这就是in的美。在本文中,您将看到这种自动化的工作原理,在以后的文章中,您将看到如何与其他浏览器执行几乎相同的操作。

我要做什么我将在这里向您展示一个看似简单的应用程序,但是它具有大量的应用程序,您可以在其中使用此代码在浏览器中进行各种有趣的操作。最重要的是,您将要创建一个Excel电子表格,以便一键单击即可快速保存所有打开的浏览器窗口。您可以保存该电子表格,然后走开或关闭计算机。

一个小时或三天后再回来,打开电子表格,单击另一个按钮,那些保存的URL将在与你以前有过。显而易见,很酷的用法是在Excel中存储整个常见的在线工作区设置库。然后,您只需单击一下按钮即可还原该工作空间,而不必再次查找所有这些URL。

使用VBA自动化Internet Explorer

首先要做的是打开Excel(我使用的是2013年-其他版本在VBA编程方面都差不多),然后转到“开发人员"菜单项。在其中,您会看到一个插入按钮,该按钮会下拉所有控件。选择ActiveX按钮控件并将其放置在电子表格中。

想必,您已经为URL创建了标头,但并非必须如此。这实际上是一个URL存储库,因此标题并不重要。添加按钮后,双击它打开VBA编辑器。在左下角,您将看到新按钮的属性。

将其重命名为cmdSaveURLs,并将标题设置为“保存URL" –表示这是保存所有打开的URL的按钮。

下一步,转到VBA编辑器顶部的“工具"菜单,单击菜单中的“引用",然后向下滚动较长列表以查找“ Microsoft Internet Controls"引用。点击其左侧的复选框,然后点击确定。

现在您可以开始滚动了。在编辑器文本区域中,您应该看到一行显示“ Private Sub cmdSaveURLs_Click()"。如果看不到,请单击文本区域上方的左下拉框,然后在列表中找到cmdSaveURLs。选择它,它将为您创建Click()函数。

这是您要插入该函数的代码:

Microsoft Scripting Runtime参考使得它可以这样做。您可以访问ShellWindows对象,该对象使您可以遍历Windows并找到已打开的IE实例。该脚本将找到您打开的每个URL,并将其写入Excel电子表格。

因此,从理论上讲,如果您正在从事博客工作,并且有一些项目在打开,例如研究窗口,您的博客编辑器或日历窗口-所有这些选项卡都将处于活动状态。如果您必须关机或急忙离开,那么通过复制所有这些URL来保存您的位置将是一个巨大的痛苦。

使用新的Excel脚本,只需单击“加载URL"按钮,并将其直接加载到电子表格中。

一个警告。如果不使用标题行,则需要将“ intRowPosition = 2"行更改为“ intRowPosition = 1",这将从第一行开始,而不是跳过标题行。

该项目的下一步是朝另一个方向发展。单击“加载URL",让Excel启动IE并重新加载您已保存在电子表格中的所有URL。这就是cmdLoadURLs_Click()函数的外观。

这里有一些步骤,但是您可以看到代码并不那么冗长或复杂。您创建一个新的IE实例,使其可见(这将打开IE而不加载URL)。接下来,它将加载列表中的第一个URL。

脚本的“ While IE.Busy"部分将等到页面完全加载后,再转到其中的其余URL。您的电子表格,打开一个新标签页(这就是“ CLng(2048)"的作用,直到它在电子表格中碰到空白单元格,然后它将停止打开新标签页。这是我的IE浏览器,使用以下命令恢复了所有四个原始标签页) Excel IE自动脚本。 PCPC.me,在站点上执行SEO项目或需要保存已使用的选项卡的集合的其他角色或项目的完整列表。

使用电子表格存储这些设置并自动在其中打开浏览器可以节省很多时间……而且实际上也很酷。

您是否在自己的浏览器中使用了任何形式的IE自动化VBA应用程序?从Excel中看到这种IE控件还有其他不错的用法吗?在下面的评论部分中分享您的想法和反馈!

标签: 计算机自动化 Microsoft Excel 电子表格