关键词不能为空

当前您在: 主页 > 英语 >

VBA中的IE对象操作

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 05:35
tags:

-

2021年2月28日发(作者:不屑)


IE


和文档对象模型



我们在实际工作中遇到网站和网页相关往往要涉及到这类问题:


如何下载网页数据?网页 之


间的通讯是怎么实现的、


它们能不能被控制等等。

< p>
分析网页根据不同协变色镜可以用不同的


角度去看,如数据流、标记,不过 ,如果你是用


VB/VBA/


脚本或其它支持自动化对象



AUTOMATION


)的语言编程,有一 个值得了解方法是掌握对象模型,将网页视为对象来


自行控制,


这个方法需要了解的是


IE


的自动化对象


(InternetExplorer


.Application)

< br>或


IE


控件


< br>Microsoft Internet Controls


< br>,以及标准的文档对象模型(


Document




以下代码在


VBA


环境下进行试验——我不在意你是用


WORD


还是


EXCEL


——可以先做一行


过程模块,也可以在立 即窗口下逐行输入:




Set


ieA


=


CreateObject(



‘创建对象



e


=


True




‘使


IE


页 面可见,做完这一步,在


VBA


之外可以看到一个新

< p>


IE


te





‘空白页



这几行代码的作用是创建一 个


IE


应用程序对象(是的,相当于一个


IE


应用程序)


,并打开


一个空白的 网页。这个网页独立于


VBA


的应用程序(

WORD



EXCEL


)之外,事 实上,你


必须自已关掉它,或者用



下令 退出——注意一下,单纯的关闭


VBA



SET


ieA=nothing


是不会退出这个网页的。当 然,如果你正在上网并且愿意,在第


3


行也可以将



3


行的字符串替换成一个网站的名字,或者替换成 一个你主机中的文档名——比如


C:




D:



正如你在

IE


地址栏输入名称浏览这些文档一样。


另一种

< p>
可选择的方法是直接在


VB/VBA


的窗体或工作 表等宿主上增加一个的


WEB


BROWS

< br>浏览器


控件,也相当于上面的


IE


应用程序



注:


WEB

< p>
BROWSE


控件和单独的


IE

< br>程序并不是完全相同的,例如


WEB


控件不能用


QUIT


方法退出,


IE



NAVIGETE


方法没有复杂的


POST


参数,但文档对象都可以用同样的方法


引用,大部分事 件和方法也通用



另外,如果访问一个已经存在的网页,例如< /p>


/


,因为可能产生异


步的延时,所以如果 不是立即窗口,往往根据


READYSTATE


的状态保证网页 加载完毕:



SUB


LOADIE()






在代码的常见的处理情况



Set


ieA


=


CreateObject(


e


=


True


te



/




‘←打开某个网页,要一定时间,但代码会往


下执行


DO


UNTIL


tate=4







检查网 页是否加载完毕(


4


表示完全加载)






DOEVENTS



















循环中交回工作权限给系统,以免“软死机”



LOOP



END


SUB


如果对这个


IE


应用程序对象的相关声明和事件感兴趣,


就要引用


I E


控件找到对象中的常量


和事件:


(M ICROSOFT INTERNET CONTROL)


你可以看到的是,


通过


ieA


——就是创建的对象——我们可以操 作它,


也可以访问它的属性。


下面继续,


如果前面你是在命令行输入,


打开的那个空白网页没有关闭,


变量是继续有效的:



Set doc = nt






‘取得网页的文档对象



TML =




‘在文档的


BODY


标记内加上标记文字


HELLO

< br>网页上写了一行小字,


HELLO......


通用的惯 例,当然你可以写上其它的什么,


HI


,我爱你,


EXCEL



HOME


之类 ,但这不是最需要的关心的问题,我们要知道这个对象之下的结构。


< br>从文档对象(


Document


)以下展开的对象模型, 它代表网页的内容,和前面那个


IE


的应用

程序不是同一个体系——请注意这一点——如果我们编程时要用到对应的对象事件和常量,

< br>在


VB/VBA


中要引用的类型库是



MIRCOSOFT HTML OBJECT LIBRARY




Documnet


(文档)是文档对象模型的基础,相当于


OFFICE


对象中的


APPLICATION


,取得


Document


之后,


不论修改网页还是读 写网页,还是触发事件,一切都好说,


每个


URL


都对


应有一个


Documnet

(这是假如定成功导航


Navigate


到那个

< p>
URL


完成,因此之前要求确定


IE


对象


READSTATE


,以确定对应


URL



Document


打开了)




Documnet


之下可以取得


documentElement



body


两个节点:



......















‘前面 已经取得了


ieA


对象,并打开空白网页,不再重复

< p>


set


doc=nt


set


xbody=




‘取得


body

对象



set


xDoc=doc.


documentElement



‘取得根节点


body


前面已经说过,相当于



标记的对象,根节点相当于网页中的


< p>
标记元素的对象,


MHTML


的类型库定义里,它 们都属于


HTMLHtmlElement


类型的对象,


下面我把这种类型的对象称为一个“节点”,


不过要注意的是文档对象 不是节点对象,


它是


HTMLDocument


类型。


根节点和


body


节点 不同的是根节点包括整个网页,



HTML

的文档


对象模型中,这类对象有几种属性可以取得其中的内容:


对象


.innerHtml




‘对象内部的


HTML


文本



对象


.OuterHtml




‘对象中的


HTML


文本,包括对象本身的


HTML


标记在内



对象


.innerText





‘对象 内部的


TEXT


,不包括


HTML


标记



对象


.OuterText





‘同上,包括对象本身的文本



所以, 如果我们要抓取某个网站的所有


HTML


内容,代码可以这样写 :



......















‘前面已经取得了


ieA


对象,并打开某< /p>


URL


网页



set


doc=nt


set


xDoc=doc.


documentElement



‘取得根节点



strX=tml





‘取得所有的


HTML


内容



这种取值的方式不妨可以当成


EXCEL


的单元格取值:



set


shDocX=SHEET



‘从应用程序、工作


簿一直定位到当前工作表,这是

< p>
EXCEL


的工作簿对象模型



set


rngX=(



a1



)




‘取得单元格


(

其实不一定是一个格子,


只要是


R


ANGE


类型对象即可


)


X=





‘取得


VALUE


值,也可以取只读的


TEX T


在网页上看到的标记,就是根节点或


body


之下的标记节点对象(


node


< br>。每一个标记节点


对象之下都有一个名为


ChildNo des


的集合,它包含了“直属于本节点下的标记”,听起来

-


-


-


-


-


-


-


-



本文更新与2021-02-28 05:35,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/678954.html

VBA中的IE对象操作的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文