Literature
首页医源资料库在线期刊成都医学院学报2007年第2卷第1期

利用VB实现OFFICE对象的访问控制

来源:成都医学院学报
摘要:【摘要】本文论述了怎样利用VB来实现OFFICE对象访问控制,主要讨论了VB的机制,OFFICE对象的层次体系,WINDOWS环境的COM、OLE技术及具体的编程模式。OFFICE对象。VBA1引言随着信息技术的飞速发展,计算机在各种事物处理中的作用越来越大,在办公自动化领域,伴随计算机的发展,办公自动化软件也日趋成熟,功能......

点击显示 收起

【摘要】    本文论述了怎样利用VB来实现OFFICE对象访问控制,主要讨论了VB的机制,OFFICE对象的层次体系,WINDOWS环境的COM、OLE技术及具体的编程模式;并结合实际应用范例探讨了这类编程模式,同时对其核心机制作了具体的分析。

【关键词】  VB;OFFICE对象;Word and Excel;COM及OLE;VBA

   Accessing and Controlling the Office Objects by Visual Basic

    LIANG Jie

    (Department of Basics of Computer Science,Chengdu Medical College,chengdu 610083,China)

    Abstract:This paper discussed the VB mechanisms,the layer architectures of the Office Object and COM and OLE technology in windows environment,as well as accessing and controlling the Office Objects by means of Visual Basic.The applications of accessing and controlling the Office Objects by means of Visual Basic was studied.A programming mode for accessing the Office Object was given.

    Key words:Visual Basic;office Object;word and Excel;COM and OLE;VBA

   1  引  言

    随着信息技术的飞速发展,计算机在各种事物处理中的作用越来越大,在办公自动化领域,伴随计算机的发展,办公自动化软件也日趋成熟,功能越来越强大,现在基于INTRANET、个人计算机和WINDOWS环境的OFFICE系列办公软件已经非常广泛地应用开来,特别是最新的Microsoft Office 2000使人们能够在今天的电子信息环境中大大提高工作效率。

    另一方面,在我们开发各种应用系统时,开发人员就可能经常要与OFFICE组件打交道,进行数据交互,必然出现各种与之相关、相结合的应用需求,需要编程自动访问、控制OFFICE对象各类数据的格式与值(如Word排版格式的访问与自动修改、利用Excel产生数据报表以及利用Access提供数据库支持等)。Microsoft为这类基于OFFICE的上层应用提供了对象组件模型结构COM(component object model),可以采用编程工具(如Visual Basic,VBA,Visual c++)非常便捷有效地通过其中的对象(object)、方法(method)、属性(Properties)访问控制OFFICE文档。在下面,主要就OFFICE2000 Suit中程序开发时主要涉及到Word2000与Excel2000为例,来探讨怎样实现对OFFICE的访问控制。

    2  OFFICE对象模型简介

    OFFICE体系采用层次(嵌套)对象模型,把复杂的OFFICE数据、属性、操作封装到对象之中[1],对象的概念就对应OFFICE中的各种实体(如文档,段落,工作表等),这样当需要访问控制某实体属性、操作时,就可以通过设置创建相应对象后,直接访问其所属对象、属性、方法来实现[2]。下面是WORD及EXCEL所常用到的部分对象以及之间的关系的图示。

    2.1  WORD对象模型(见图1)

    其中,Application是最顶层对象,在下面列举了几种常用的对象:Assistant是 OFFICE助手对象,TEMPLETES是WORD的模板文档对象集合,DOCUMENTS是WORD文档对象集合,所属的DOCUMENT表示某一个文档对象[3]。DOCUMENT所属PARAGRAPHS表示该文档的所有段落对象集合,PARAGRAPH表示该文档中的某一个对象;SELECTION用来表示文档中所选定的内容。

    2.2  EXCEL对象模型(见图2)

    其中,Application是最顶层对象,表示一个EXCEL对象,在下面例举了几种常用对象,Workbook表示一个工作薄,Worksheets表示工作表,range表示在表中选定的单元格范围,Chart表示一个图表,Styles描述单元格的样式。

    3  编程模式

    下面利用几个应用实例来探讨利用VB实现对OFFICE对象的编程模式。

    3.1  实例1利用WORD对象实现WORD排版格式自动检查    首先点击VB菜单中的Project|References,在引用窗口的列表中选 WORD9.0 Object Library,再点击确定按钮,就将WORD对象库加载到环境中了。下面这段代码可以嵌入主窗体中,它显示了以只读方式访问WORD文档的排版格式及内容,如果要修改文档则可以非只读方式打开,再以相似的访问方式设置即可。

    图2  Excel对象模型图(部分)

    Fig.2  EXCEL object model map(part)

    Dim f As document

    Set f=CreateObject (“Word.Document”)

    Set f=Word.Documents.Open (Filename: =“c:\pb.doc”,ReadOnly:=True)

    D_count=f.Paragraphs.Count

    s_count=0

    Dim p_o As Paragraph,pp as Range

    Dim ff As Boolean,pn as Integer

    Dim dxjf(10)as Single

    Pn=D_count

    s_count=0

    For i=1 To 5

    dxjf(i)=0

    Next I

    For ii=1 To pn

    Set p_o=ActiveDocument.Paragraphs(ii)

    ff =True'

    Select Case ii

    Case 1

    If p_o.Range.Font.Name=“楷体_GB2312”And p_o.Range.Font.ColorIndex=9 _And p_o.Range.Font.Bold=True And p_o.Range.Font.Italic=False And p_o.Range.Font.Size=22 Then dxjf(1)=dxjf(1)+1

    End If

    If p_o.Range.Font.Kerning=1 And p_o.Range.Font.Spacing=2 Then

    dxjf(2)=dxjf(2)+1

    End If

    If p_o.Alignment=wdAlignParagraphCenter Then

    dxjf(3)=dxjf(3)+1

    End If

    Case 2,3,4,5,6,7

    If p_o.Range.Font.Name=“幼圆”And p_o.Range.Font.ColorIndex=wdBlack _Andp_o.Range.Font.Bold=0 And p_o.Range.Font.Italic=0 And _

    p_o.Range.Font.Size=12 Then'!!font

    dxjf(1)=dxjf(1)+1

    End If

    If p_o.Range.Font.Spacing=0.5 Then

    dxjf(2)=dxjf(2)+1

    End If

    If p_o.Alignment=wdAlignParagraphLeft Then

    dxjf(3)=dxjf(3)+1

    End If

    If p_o.CharacterUnitFirstLineIndent=1.5 And p_o.LeftIndent=2 And p_o.

    RightIndent=2 Then

    dxjf(4)=dxjf(4)+1

    End If

    If p_o.LineSpacingRule=wdLineSpaceSingle Then

    dxjf(5)=dxjf(5)+1

    End If

    End Select

    Next ii

    Set f=Nothing

    3.2  实例2使用WORD艺术字工具

    在WORD中提供了一个艺术字工具,利用它可以为WORD增色不少,同样,在VB中也可以利用艺术字工具,来看看下面的代码:

    Option Explicit

    Dim xDocu As New Word.Application

    Private Sub Form_Load()

    xDocu.Documents.Add.Select

    xDocu.ActiveDocument.Shapes.AddTextEffect(3,“深圳西丽”, _“宋体”,32#,-1,0,10,10).Select

    xDocu.Selection.Copy

    Form1.Picture=Clipboard.GetData

    xDocu.Quit 0

    Set xDocu=Nothing

    End Sub

    加入上面的代码到Form1中并点击VB菜单中的Project|References,在引用窗口的列表中选WORD 9.0 Object Library再点击确定按钮。然后运行程序,你就可以看到Form中出现了漂亮的艺术字体,你还可以改变xDocu.ActiveDocument.Shapes.AddTextEffect函数中的第一个参数(上面为3,这个参数选定艺术字的样式,Word提供了30个艺术字样式供选择)。

    3.3  实例3建立EXCEL表格

    下面的程序介绍如何在不打开EXCEL进行手工输入的情况下利用VB控制EXCEL自动建立表格然后在表格中输入给定的内容后保存退出。

    首先点击VB菜单中的Project|References,在引用窗口的列表中选EXCEL 9.0 Object Library再点击确定按钮。再在Form1中加入一个CommandButton,然后在Form1中加入如下代码:

    Option Explicit

    Dim x(1 To 4,1 To 5) As Integer

    Private Sub Command1_Click()

    Dim i As Integer

    Dim j As Integer

    Dim ex As Object

    Dim exwbook As Object

    Dim exsheet As Object

    Set ex=CreateObject(“Excel.Application”)

    Set exwbook=Nothing

    Set exsheet=Nothing

    Set exwbook=ex.Workbooks().Add

    Set exsheet=exwbook.Worksheets(“sheet1”)

    ex.Range(“c4:g7”).Value=x

    ex.Range(“c3”).Value=“深职院”

    ex.Range(“d3”).Value=“计算机”

    ex.Range(“e3”).Value=“建工”

    ex.Range(“f3”).Value=“电子”

    ex.Range(“g3”).Value=“经济”

    exwbook.SaveAs “c:\abc.xls”

    ex.Quit

    End Sub

    Private Sub Form_Load()

    Me.Show

    End Sub

    点击Command1,然后你就可以看到在C盘下增加了一个abc.xls的EXCEL表格文件,文件的内容就是VB中输入的内容。

    4  结束语

    在Windows的面向对象环境下,MS OFFICE组件支持完全的COM或OLE技术规范[4],为Windows环境的编程提供了高效的接口,提高了编程效率,扩充了程序功能,可增强应用程序的表现手段,使应用程序可以很方便地访问控制各种OFFICE的对象,可以大大提高OFFICE应用领域的自动化程度。其实不管以后的主流桌面办公系统怎样,但是采用这种以COM甚至DCOM(分布式COM)为核心的“中间件技术”来构造办公应用系统平台应该是大势所趋[5]。

    在实际应用中,首先要熟悉OFFICE各组件的对象层次与关系,然后要弄清各对象的主要属性以及方法,这些可以结合VBA来分析出来,也可直接到微软的MSDN网站去查到。从前面的示例可以看出,用VB来实现OFFICE对象的访问控制是非常有效的,而且这种编程控制模式将应用得越来越广泛。

【参考文献】
  [1]协同教育微软ATC教材编译室.OFFICE专家案例教程EXCEL 2000[M].北京:电子工业出版社,1999:56-58.

[2]晶辰工作室.WORD2000 VBA开发实例指南[M].北京:电子工业出版社,2000:38-40.

[3]邱仲潘.Visual Basic 6 高级开发指南[M].北京:电子工业出版社.1999:95-98.

[4]王强华,周明全,耿国华,等.COM的套间模型及方法的远程传递机制[J].COMPUTER APPLICATIONS AND SOFTWARE,2006,23(9):34-35.

[5]窦宪民,李菊丽.WINDOWS的OLE技术与AUTOCAD[J].电脑开发与应用,2002,15(7):38-42.

作者: 梁洁作者单位:成都医学院计算机教研室,成都 610083 2013-2-27
医学百科App—中西医基础知识学习工具
  • 相关内容
  • 近期更新
  • 热文榜
  • 医学百科App—健康测试工具