OLE自动化技术及实例

Author: 任海军 Date: 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