荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Jobs (温少), 信区: Visual
标  题: Microsoft Word 对象--使用自动化
发信站: BBS 荔园晨风站 (Sun Jan 16 18:29:59 2000), 转信






使用自动化

在运用Word数据之外,用户还可能想让自己的应用程序同其他的应用程序,比如
Microsoft Excel, Microsoft PowerPoint, 或Microsoft Access交换数据。用户
可以通过使用自动化(以前的OLE自动化)来同其他应用程序进行通信。

从另一个应用程序中对Word进行自动化

自动化运行用户通过引用另一个应用程序的对象、属性和方法来返回、编辑和输
出数据。用户能够在另一个应用程序中进行引用的Application对象称为自动化对
象。使Word能够被另一个应用程序所使用的第一步,就是创建对Word类型库的一
个引用。要创建对Word类型库的引用,可以在“Visual Basic编辑器”里,单击
“工具”菜单中的“引用”,然后在“Microsoft Word 8.0 Object Library”旁
边的复选框内打上钩。

下一步,声明一个引用Word Application对象的对象变量,如下例所示。

Dim appWD As Word. Application. 8

使用带有Word OLE程序标识符的Visual Basic CreateObject函数或GetObject函
数,如下例所示。如果想看到Word时段,设置Visible属性为True(真)。

Dim appWD As Word. Application. 8

Set appWD = CreateObject ("Word. Application.8")

appWd. Visible = True

CreateObject函数返回一个Word Application对象,并且将它赋给appWD。通过使
用Word Application对象的对象、属性和方法,用户可以用该变量对Word进行控
制。以下的实例新建一个Word文档。

appWd. Documents. Add

CreateObject函数启动一个Word时段,当引用Application对象的对象变量失效时
,该时段内的自动化不会关闭。设置该对象引用Nothing关键字也不会关闭Word。
而是使用Quit方法来关闭Word。以下的Microsoft Excel示例把“工作表1”中A1
:B10单元格里的数据插入到一个Word新文档中,然后调整表格中的数据。如果使
用了CreateObject函数,则该示例使用Quit方法来关闭Word的新实例。如果
GetObject函数返回错误429,那么该示例使用CreateObject来启动一个Word新实
例。

Dim appWD As Word. Application

Err.Number = 0

On Error GoTo notloaded

Set appWD = GetObject (, "Word. Application.8")

notloaded:

If Err. Number = 429 Then

Set appWD = CreateObject ("Word. Application.8")

theError = Err. Number

End If

appWD. Visible = True

With appWD

Set myDoc = .Documents. Add

With .Selection

For Each c In Worksheets ("Sheet1"). Range ("A1:B10")

.InsertAfter Text :=c.Value

Count = Count + 1

If Count Mod 2 = 0 Then

.InsertAfter Text :=vbCr

Else

.InsertAfter Text :=vbTab

End If

Next c

.Range. ConvertToTable Separator :=wdSeparateByTabs

.Tables(1). AutoFormat Format :=wdTableFormatClassic1

End With

myDoc. SaveAs FileName :="C:\Temp.doc"

End With

If theError = 429 Then appWD. Quit

Set appWD = Nothing

从Word对另一个应用程序进行自动化

要通过从Word使用自动化来和另一个应用程序交换数据,必须首先在“引用”对
话框(在“工具”菜单中)里设置对另一个应用程序的类类型库的一个引用。在这
之后,另一个应用程序的对象、属性和方法都将出现在“对象浏览器”中,并且
会在编译时自动对语法进行检查。用户也可以获得这些对象、属性和方法的内容
敏感型帮助。

下一步,声明一个引用另一个应用程序中的特定类型对象的对象变量。以下示例
声明了一个变量,该变量指向Microsoft Excel Application对象。

Dim xlObj As Excel.Application.8

用户可以通过使用CreateObject 或 GetObject函数来获得Automation对象。然后
,通过使用另一个应用程序的对象、属性和方法,用户可以添加、更改或删除信
息。当用户完成更改后,关闭应用程序。以下Word的示例判断Microsoft Excel是
否正在运行。如果指定的Microsoft Excel任务存在,该示例使用GetObject函数
;否则,它使用CreateObject函数。然后该示例将选定的文字传送给活动的
Microsoft Excel工作簿里“工作表1”的A1单元格中。在任务完成以后,使用带
有Nothing关键字的Set语句来清除Automation对象变量。

Dim xlObj As Excel. Application. 8

If Tasks.Exists ("Microsoft Excel") = True Then

Set xlObj = GetObject (, "Excel. Application. 8")

Else

Set xlObj = CreateObject ("Excel. Application. 8")

End If

xlObj. Visible = True

If xlobj. Workbooks. Count = 0 Then xlobj. Workbooks. Add

xlObj. Worksheets ("Sheet1").Range("A1").Value = Selecttion. Text

Set xlObj = Nothing

以下Word的示例判断PowerPoint是否正在运行。如果存在PowerPoint任务,那么
该示例使用GetObject函数;否则,它使用CreateObject函数。然后该示例创建一
个新演示文稿,文稿的第一个文本框包含活动Word文档的名称,第二个文本框包
含活动文档第一段的文字。在任务完成后,使用带有Nothing关键字的Set语句来
清除Automation对象变量。

Dim pptObj As PowerPoint. Application.8

If Tasks. Exists ("Microsoft PowerPoint") = True Then

Set pptObj = GetObject (, "PowerPoint. Application.8")

Else

Set pptObj = CreateObject ("PowerPoint. Application.8")

End If

pptObj. Visible = True

Set pptPres = pptObj. presentations. Add

Set aSlide = pptPres. Slides. Add(Index :=1, Layout :=ppLayoutText)

aSlide. Shapes(1). TextFrame. TextRange. Text = ActiveDocument.Name

aSlide. Shapes(2). TextFrame. TextRange. Text = ActiveDocument.Paragraphs(1).
Range. Text

Set pptObj = Nothing

要了解关于对Microsoft Access进行自动化的信息,请参阅第三章“Microsoft Access对象
”。要了解关于Word中Data Access 对象(DAO)的使用,请参阅“帮助”中的“在
Microsoft Word中使用DAO”。

同内嵌Word对象进行通信

以后可以使用任何Word对象的Application属性来返回Word Application 对象。
这有助于从内嵌在另一个应用程序中的Word文档里方法Word Application对象。
以下的在Microsoft Excel中运行的示例,将一个对象变量设置为Word
Application对象。(为了使该示例能够运行,在活动工作表中的形状一必须是一
个内嵌Word文档。)该示例中最后一条命令在内嵌Word文档的开头添加文字。


Dim appWRD As Word. Application

Set embeddedDoc = ActiveSheet. Shapes(1)

Set appWRD = embeddedDoc. OLEFormat. Object. Object. Application

appWRD. ActiveDocument. Range(Start :=0, End :=0). InsertBefore Text
:="New text "

以下在PowerPoint中运行的示例,将一个对象变量设置为Word Application对象
。(为了使该示例能够运行,在演示文稿中的幻灯片一必须是一个内嵌Word文档。
)该示例的最后一条命令显示了在内嵌Word文档中的文字。

Dim appWRD As Word. Application

Set embeddedDoc = Presentations(1). Slides(1). Shapes(1)

embeddedDoc. OLEFormat. Activate

Set appWRD = embeddedDoc.OLEFormat. Object. Application

MsgBox appWRD. ActiveDocument. Content.Text









--

   好好学习,天天向上!!!!

※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.11.111]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店