VBA中的IE对象操作.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VBA中的IE对象操作

IE和文档对象模型 我们在实际工作中遇到网站和网页相关往往要涉及到这类问题:如何下载网页数据?网页之间的通讯是怎么实现的、它们能不能被控制等等。分析网页根据不同协变色镜可以用不同的角度去看,如数据流、标记,不过,如果你是用VB/VBA/脚本或其它支持自动化对象(AUTOMATION)的语言编程,有一个值得了解方法是掌握对象模型,将网页视为对象来自行控制,这个方法需要了解的是IE的自动化对象(InternetExplorer.Application)或IE控件(Microsoft Internet Controls),以及标准的文档对象模型(Document) 以下代码在VBA环境下进行试验——我不在意你是用WORD还是EXCEL——可以先做一行过程模块,也可以在立即窗口下逐行输入: Set ieA = CreateObject(InternetExplorer.Application) ‘创建对象 ieA.Visible = True ‘使IE页面可见,做完这一步,在VBA之外可以看到一个新的IE ieA.navigate about:blank ‘空白页 这几行代码的作用是创建一个IE应用程序对象(是的,相当于一个IE应用程序),并打开一个空白的网页。这个网页独立于VBA的应用程序(WORD或EXCEL)之外,事实上,你必须自已关掉它,或者用ieA.Quit下令退出——注意一下,单纯的关闭VBA或SET ieA=nothing是不会退出这个网页的。当然,如果你正在上网并且愿意,在第3行也可以将第3行的字符串替换成一个网站的名字,或者替换成一个你主机中的文档名——比如C:\XXX.HTM,或D:\PIC\XXX.GIF,正如你在IE地址栏输入名称浏览这些文档一样。另一种可选择的方法是直接在VB/VBA的窗体或工作表等宿主上增加一个的WEB BROWS 浏览器控件,也相当于上面的IE应用程序 注:WEB BROWSE控件和单独的IE程序并不是完全相同的,例如WEB控件不能用QUIT方法退出,IE的NAVIGETE方法没有复杂的POST参数,但文档对象都可以用同样的方法引用,大部分事件和方法也通用 另外,如果访问一个已经存在的网页,例如HYPERLINK //,因为可能产生异步的延时,所以如果不是立即窗口,往往根据READYSTATE的状态保证网页加载完毕: SUB LOADIE() ‘ 在代码的常见的处理情况 Set ieA = CreateObject(InternetExplorer.Application) ieA.Visible = True ieA.navigate HYPERLINK // ‘←打开某个网页,要一定时间,但代码会往下执行 DO UNTIL ieA.Readystate=4 ‘ 检查网页是否加载完毕(4表示完全加载) DOEVENTS ‘ 循环中交回工作权限给系统,以免“软死机” LOOP END SUB 如果对这个IE应用程序对象的相关声明和事件感兴趣,就要引用IE控件找到对象中的常量和事件:SHDOCVW.DLL(MICROSOFT INTERNET CONTROL) 你可以看到的是,通过ieA——就是创建的对象——我们可以操作它,也可以访问它的属性。下面继续,如果前面你是在命令行输入,打开的那个空白网页没有关闭,变量是继续有效的: Set doc = ieA.Document ‘取得网页的文档对象 doc.body.innerHTML = Hello ‘在文档的BODY标记内加上标记文字HELLO 网页上写了一行小字,HELLO......通用的惯例,当然你可以写上其它的什么,HI,我爱你,EXCEL,HOME之类,但这不是最需要的关心的问题,我们要知道这个对象之下的结构。 从文档对象(Document)以下展开的对象模型,它代表网页的内容,和前面那个IE的应用程序不是同一个体系——请注意这一点——如果我们编程时要用到对应的对象事件和常量,在VB/VBA中要引用的类型库是MSHTML.TLB(MIRCOSOFT HTML OBJECT LIBRARY) Documnet(文档)是文档对象模型的基础,相当于OFFICE对象中的APPLICATION,取得Document之后,不论修改网页还是读写网页,还是触发事件,一切都好说,每个URL都对应有一个Documnet(这是假如定成功导航Navigate到那个URL完成,因此之前要求确定IE对象READSTATE,以确定对应URL的Document打开了) 在Documnet之下可以取得documentElement和body两个节点: ...... ‘前

文档评论(0)

sd44055 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档