与其他应用程序进行通讯

   

除了处理 Word 数据,您可能需要用户应用程序与 Microsoft Excel、Microsoft PowerPoint 或 Microsoft Access 等其他应用程序进行数据交换。可以通过使用自动功能(以前称为 OLE 自动功能)或动态数据交换(DDE)与其他应用程序进行通讯。

从其他应用程序中自动进行 Word 操作

自动功能允许通过引用其他应用程序的对象、属性和方法来返回、编辑和输出数据。可由其他应用程序引用的应用程序对象称为 Automation 对象。

若要使其他应用程序使用 Microsoft Word 的自动功能,需要首先创建一个对 Word Application 对象的引用。在 Visual Basic 中,可使用 Visual Basic 的 CreateObjectGetObject 功能返回一个到 Word Application 对象的引用。例如,在 Microsoft Excel 过程中,可以使用下列指令:

Set wrd = CreateObject("Word.Application")

该指令使 Word 中的 Application 对象可用于自动功能。使用 Word 的 Application 对象的对象、属性和方法,可以控制 Word。例如,下列指令创建一个新的 Word 文档:

wrd.Documents.Add

在创建新文档后,使用 Visible 属性使新文档可见。

wrd.Visible = True

CreateObject 功能启动一个 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 中通过自动功能与其他应用程序交换数据,需首先使用 CreateObjectGetObject 函数获得应用程序的引用。然后使用另一个应用程序的对象、属性和方法添加、更改或删除信息。完成更改后,再关闭应用程序。下列 Word 示例显示 Microsoft Excel 的启动路径。可以使用 Visual Basic 的带有 Nothing 关键字的 Set 语句清除对象变量,效果等同于关闭该应用程序。

Set myobject = CreateObject("Excel.Application")
MsgBox myobject.StartupPath
Set myobject = Nothing

使用动态数据交换(DDE)

如果应用程序不支持自动功能,可使用 DDE。DDE 是一个协议,允许两个应用程序通过 DDE“通道”连续地进行自动数据交换。要控制两个应用程序之间的 DDE 会话,需要建立通道,选定主题,请求并传送数据,然后关闭该通道。下表列出了 Word 使用 DDE 所能支持的任务,以及通过 Visual Basic 控制每个任务的方法。

任务 方法
启动 DDE DDEInitiate
从另一个应用程序获取文本 DDERequest
向另一个应用程序发送文本 DDEPoke
在另一个应用程序中执行命令 DDEExecute
关闭 DDE 通道 DDETerminate
关闭所有的 DDE 通道 DDETerminateAll