您好、欢迎来到现金彩票网!
当前位置:博发彩票app下载 > 公共对象模型 >

Word中对象模型的概念及其应用

发布时间:2019-05-14 21:55 来源:未知 编辑:admin

  ∠衷冢琌ffice工具因其强大的功能和广泛使用受到众多软件开发者的青睐,有些软件利用Office作为输出界面;有些软件以OLE嵌入方式使用Office,以便用户更好地利用Office便利的编辑功能和丰富的格式(例如IE);有些软件甚至直接利用Office中的VBA语言进行开发,仅限在Office环境中使用。要更好地使用Office的这些功能,就需要我们对Office中VBA语言有所了解,该语言是完全面向对象的,其核心概念就是对象模型。下面以Word为例,简介对象模型的概念,同时列举几个应用实例来具体说明。

  什么是对象模型?简单地说,用户在Word中操作和改变的每一个东西都是一个对象,这些对象的相互关系组成了Word中的对象模型(图1)。在Word中,文档、对话框、文本框、图形、图表甚至Word本身都是对象,同时,这些对象都有自己的属性和方法,因此,用户可通过编程来访问这些已有对象,改变它们的属性,以完成某些较高级的功能。在对象模型中,还有一个重要的概念是集合(collections),所谓集合,就是由一组相近对象的组合,它们隶属于另一个大对象,例如图1中的sentences、words和characters对象,就可看成一个集合,它们都隶属于Range对象,集合的重要属性是我们可以对之进行整体操作,当然也可对集合中的某个对象进行操作。下面以图1所示的简化的Word对象模型为例,结合具体实例来说明Word对象模型的应用。

  我们有时想将Word文档的属性作整体(如字体、字号等)改变,最常见的例子是将整篇文档的字体都按比例增大或减小一号,如果整篇文档都采用同一属性,那么就可全选整个文档,然后改变属性即可;如果文档中的不同部分的属性不同,我们就很难对其进行整体操作,唯一的办法是选择文档的不同部分进行分别操作,这样做不仅费时,而且容易出错。若借助Word的对象模型,我们就可轻易地对整个文档中的每一段落、句、单词甚至是单个字的属性进行准确控制,下面以字号属性为例(其它属性类似),从不同的对象层次出发,将Word文档中的所有字号都减小一号。

  a) 以paragraph(段落)为操作对象,将文档中的每一段的字号减小一:

  如果Word文档中的各段落的字号不尽相同,但段落内部的字号都相同,则可通过改变段落对象的字号属性来达到我们的目的。打开Word工具菜单的Visu Basic编辑器,键入下列程序:

  如果该段落中的字号不尽一致或有其它格式,Word段落字号属性的返回值将为99999

  单击运行按钮,便能使Word文档中每一段字号减小一号。同样,若Word文档中每一句、每一个单词甚至每一个字的字号都不尽同,我们可将图1模型中中的Sentences、Words和Characters作为对象进行相应的编程,具体程序段如下。

  d) 以Characters(单字)为操作对象,将文档中的每一个字的字号减小一:

  Word自身有替换命令(ctrl+h),但该命令的不足之处是,不能对带格式的单词进行替换,例如,要将整篇文档中的H2CO3替换成H2CO3,该命令就无能为力了。借助Word中的对象模型,我们可轻而易举地作到这一点,具体程序如下:

  上面程序段运行后,即可将文档中所有的h2co3或H2CO3全替换成H2CO3。而且,我们还可在VBA中插入窗体,编写出同Word替换命令类似的窗口界面,来进行带格式单词的替换。

  上面以Word为例,介绍了Office对象模型的基本概念及其简单应用,这些概念同样适用于Excel、PowerPoint等,只是对象名称稍有不同而已。总之,我们要想借Office为己所用,达到“它山之石,可以攻玉”的目的,我们就有必要熟悉Office对象模型。但值得注意的是,我们选用的对象层次越深,对象单位越小,程序运行的时间就越长,有兴趣的读者可运行例1)中的字体变化程序,会轻易看到以字为对象的程序段(Sub characters())运行时间最长,而以段为操作对象(Sub paragraphs())的程序段运行时间最短。所以我们在编写VBA程序时,为了顾及程序运行速度和效率,应尽可能选用层次浅的对象编写程序。

http://albaexodus.net/gonggongduixiangmoxing/258.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有