vba中的ie对象操作

vba中的ie对象操作

ID:1211425

大小:38.00 KB

页数:7页

时间:2017-11-08

vba中的ie对象操作_第1页
vba中的ie对象操作_第2页
vba中的ie对象操作_第3页
vba中的ie对象操作_第4页
vba中的ie对象操作_第5页
资源描述:

《vba中的ie对象操作》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、IE和文档对象模型我们在实际工作中遇到网站和网页相关往往要涉及到这类问题:如何下载网页数据?网页之间的通讯是怎么实现的、它们能不能被控制等等。分析网页根据不同协变色镜可以用不同的角度去看,如数据流、标记,不过,如果你是用VB/VBA/脚本或其它支持自动化对象(AUTOMATION)的语言编程,有一个值得了解方法是掌握对象模型,将网页视为对象来自行控制,这个方法需要了解的是IE的自动化对象(InternetExplorer.Application)或IE控件(MicrosoftInternetControls),以及

2、标准的文档对象模型(Document)以下代码在VBA环境下进行试验——我不在意你是用WORD还是EXCEL——可以先做一行过程模块,也可以在立即窗口下逐行输入:SetieA=CreateObject("InternetExplorer.Application")‘创建对象ieA.Visible=True‘使IE页面可见,做完这一步,在VBA之外可以看到一个新的IEieA.navigate"about:blank"‘空白页这几行代码的作用是创建一个IE应用程序对象(是的,相当于一个IE应用程序),并打开一个空白的网

3、页。这个网页独立于VBA的应用程序(WORD或EXCEL)之外,事实上,你必须自已关掉它,或者用ieA.Quit下令退出——注意一下,单纯的关闭VBA或SETieA=nothing是不会退出这个网页的。当然,如果你正在上网并且愿意,在第3行也可以将第3行的字符串替换成一个网站的名字,或者替换成一个你主机中的文档名——比如C:XXX.HTM,或D:PICXXX.GIF,正如你在IE地址栏输入名称浏览这些文档一样。另一种可选择的方法是直接在VB/VBA的窗体或工作表等宿主上增加一个的WEBBROWS浏览器控件,也

4、相当于上面的IE应用程序注:WEBBROWSE控件和单独的IE程序并不是完全相同的,例如WEB控件不能用QUIT方法退出,IE的NAVIGETE方法没有复杂的POST参数,但文档对象都可以用同样的方法引用,大部分事件和方法也通用另外,如果访问一个已经存在的网页,例如http://www.excelhome.net/,因为可能产生异步的延时,所以如果不是立即窗口,往往根据READYSTATE的状态保证网页加载完毕:SUBLOADIE()‘在代码的常见的处理情况SetieA=CreateObject("Internet

5、Explorer.Application")ieA.Visible=TrueieA.navigate"http://www.ooxx.com/"‘←打开某个网页,要一定时间,但代码会往下执行DOUNTILieA.Readystate=4‘检查网页是否加载完毕(4表示完全加载)DOEVENTS‘循环中交回工作权限给系统,以免“软死机”LOOPENDSUB如果对这个IE应用程序对象的相关声明和事件感兴趣,就要引用IE控件找到对象中的常量和事件:SHDOCVW.DLL(MICROSOFTINTERNETCONTROL)你

6、可以看到的是,通过ieA——就是创建的对象——我们可以操作它,也可以访问它的属性。下面继续,如果前面你是在命令行输入,打开的那个空白网页没有关闭,变量是继续有效的:Setdoc=ieA.Document‘取得网页的文档对象doc.body.innerHTML="Hello"‘在文档的BODY标记内加上标记文字HELLO网页上写了一行小字,HELLO......通用的惯例,当然你可以写上其它的什么,HI,我爱你,EXCEL,HOME之类,但这不是最需要的关心的问题,我们要知道这个对象之下的结构。从文档对象(Docum

7、ent)以下展开的对象模型,它代表网页的内容,和前面那个IE的应用程序不是同一个体系——请注意这一点——如果我们编程时要用到对应的对象事件和常量,在VB/VBA中要引用的类型库是MSHTML.TLB(MIRCOSOFTHTMLOBJECTLIBRARY)Documnet(文档)是文档对象模型的基础,相当于OFFICE对象中的APPLICATION,取得Document之后,不论修改网页还是读写网页,还是触发事件,一切都好说,每个URL都对应有一个Documnet(这是假如定成功导航Navigate到那个URL完成,

8、因此之前要求确定IE对象READSTATE,以确定对应URL的Document打开了)在Documnet之下可以取得documentElement和body两个节点:......‘前面已经取得了ieA对象,并打开空白网页,不再重复setdoc=ieA.Documentsetxbody=doc.Body‘取得body对象setxDoc=doc.document

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。