除了处理 Word 数据,您可能需要用户应用程序与 Microsoft Excel、Microsoft PowerPoint 或 Microsoft Access 等其他应用程序进行数据交换。可以通过使用自动功能(以前称为 OLE 自动功能)或动态数据交换(DDE)与其他应用程序进行通讯。
从其他应用程序中自动进行 Word 操作
自动功能允许通过引用其他应用程序的对象、属性和方法来返回、编辑和输出数据。可由其他应用程序引用的应用程序对象称为 Automation 对象。
若要使其他应用程序使用 Microsoft Word 的自动功能,需要首先创建一个对 Word Application 对象的引用。
在 Visual Basic 中,可使用 Visual Basic 的 CreateObject(内存中如果没有Word.Application时,用这个) 或 GetObject(否则“勾引到她”^_^) 功能返回一个到 Word Application 对象的引用。例如,在 Microsoft Excel 过程中,可以使用下列指令:
Set wrd = CreateObject("Word.Application")
'这就是在其它程序中或在word中新建一个Word的后台调用语句了。
该指令使 Word 中的 Application 对象可用于自动功能。使用 Word 的 Application 对象的对象、属性和方法,可以控制 Word。例如,下列指令创建一个新的 Word 文档:
wrd.Documents.Add
在创建新文档后,使用 Visible 属性使新文档可见。
wrd.Visible = True
CreateObject 功能启动一个 Word 会话(或者是一个Word进程,这个好解释一些),当引用 Application 对象的对象变量过期时,不会关闭自动功能。将对象设为对 Visual Basic 的 Nothing 关键字的引用不会关闭 Word。相反,使用 Quit 方法可关闭 Word 应用程序。
下列 Microsoft Excel 示例显示 Word 的启动路径。Quit 方法用于在显示启动路径后关闭 Word 的新实例。
Set wrd = CreateObject("Word.Application")
MsgBox wrd.Options.DefaultFilePath(wdStartupPath)
wrd.Quit
从 Word 中对其他应用程序进行自动操作
若要在 Word 中通过自动功能与其他应用程序交换数据,需首先使用 CreateObject 或 GetObject 函数(与上同,不重复说了)获得应用程序的引用。然后使用另一个应用程序的对象、属性和方法添加、更改或删除信息。完成更改后,再关闭应用程序。下列 Word 示例显示 Microsoft Excel 的启动路径。可以使用 Visual Basic 的带有 Nothing 关键字的 Set 语句清除对象变量,效果等同于关闭该应用程序。
Set myobject = CreateObject("Excel.Application")
MsgBox myobject.StartupPath
Set myobject = Nothing
使用动态数据交换(DDE)
如果应用程序不支持自动功能(Office组件大多支持。),可使用 DDE。DDE 是一个协议,允许两个应用程序通过 DDE“通道”连续地进行自动数据交换。要控制两个应用程序之间的 DDE 会话,需要建立通道(有时像操作系统的通道?),选定主题,请求并传送数据,然后关闭该通道。下表列出了 Word 使用 DDE 所能支持的任务,以及通过 Visual Basic 控制每个任务的方法。
安全性 动态数据交换 (DDE) 是一种不安全的陈旧技术(我想:如果你是追求前卫的人这一部分可以跳过了。)如果可能,请使用比 DDE 更加安全的技术,如对象链接与嵌入 (OLE)。