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