荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: 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软件 网络书店