OLE自动化技术及实例 任海军 1998年 第40期 03版   Visual Basic 5.0在以前版本的基础上,又增加了许多新功能和高级技术。本文就OLE的自动化技术作一简要论述。   由于OLE自动化(OLE Automation)技术的日臻完善和成熟,OLE术语的含义已扩大了范围,可包括以下的相关概念:嵌入式编辑,面向对象的编程,OLE容器(Container)控件和OLE Automation(自动化)。用OLE自动化技术可以完成三方面的任务:   1.可在VB程序中使用外部程序的特性来满足自己的需要,如利用Word的字计数器来返回一个文本框中文本的统计值,如段落数、字数等;   2.可用VB来严格控制外部应用程序及其数据的行为。比方说,可在Excel中激发宏,打印一个特殊文件的若干备份,然后关闭它;   3.在VB中用Class Module来生成新的对象,这些对象可以执行外部应用程序的服务。   要构造一个OLE自动化可能比人们预料的要容易。在本例中我们将在一个VB文本框中让Microsoft Word对文本框中的文本进行拼写检查。VB没有拼写检查器,因而我们借用Microsoft Word拼写检查器的服务。   在本例中通过创建一个对象来实现和Word的联系,对象是Word的宏语言WordBasic,可通过下列命令创建WordBasic对象:   Dim WordObj As Object   Set WordObj =  CreateObject(″Word.Application.8″)   一旦对象创建之后,我们就可以在VB中使用WordBasic的所有命令和工具。   创建拼写自动化的具体步骤如下:   1.启动Microsoft Word,然后输入几行文字,并加亮(选择)这些文字。   2.按Ctrl+Ins键把加亮的文字拷贝到剪贴板上(我们将通过剪贴板把VB文本框中的内容传给Word)。   3.按Alt+T,M,R键,转到Word的宏记录器上。   4.输入宏名MyMacro(或任何你想给这个宏取的名字)。   5.按Enter键开始记录这个宏。   6.现在,用WordBasic记录每一个动作:   ·按Alt+F,N,Enter键,创建一个新文档;   ·按Shift+Ins键,把剪贴板上的文本粘贴到Word文档中;   ·按F7键,启动SpellCheck;   ·按Ctrl+A键,选择整个文档,然后按Ctrl+C键把拼写检查过的文本拷回剪贴板;   ·最后,按Alt+F,C,N键关闭文档,按Alt+T,M,R键,使宏停止记录。   在VB编程中可以通过一个命令按钮(Command1)的单击过程来实现对应的功能,具体的程序代码如下: Public WordObj As Object’放在通用部分 Private Sub Command1_Click() On Error Resume Next  ’将WordObj设为Word97对象 Set WordObj = GetObject(″″, ″Word.Application.8″) If WordObj Is Nothing Then Set WordObj = CreateObject(″Word.Application.8″) End If Clipboard.Clear Clipboard.SetText Text1.Text, 1 WordObj.Documents.Add WordObj.Documents.Add Template:=″C:\Office\  Templates\Normal.dot″, NewTemplate:=False WordObj.Selection.Paste If WordObj.Options.CheckGrammarWithSpelling=True Then WordObj.ActiveDocument.CheckGrammar Else WordObj.ActiveDocument.CheckSpelling End If WordObj.Selection.WholeStory WordObj.Selection.Copy WordObj.Quit Set WordObj = Nothing Text1.Text = Clipboard.GetText() End Sub