怎样在VB中控制WORD





    使用 VB编程时,有时需要调用Microsoft  WORD对文字进行编辑、排版及输出。为实现这种调用,可以使用Shell函数、OLE自动化、在包容器中嵌入 WORD对象等方法。经过试用和比较,总结出了这几种方法的各自特点。

 

1 使用Shell函数直接调用

    语法:Shell (pathname[,windowstyle]).Pathname是指要执行的程序的名字和任何必须的参数或命令行开关,可以包括目录和驱动器名;Windowstyle是执行程序的窗口风格的数字。

    使用Shell调用 WORD比较简单,编程量小,但必须明确指定 WORD所在路径,这不利于移植,而且,不能对 WORD进行控制,不利于程序和 WORD之间的数据交换。

 

2 使用OLE自动化控制Microsoft  WORD

    2.1 使用方法

    (1) WORD为OLE自动化提供一种称为“Basic”的对象,要在 VB 中控制 WORD ,首先要定义一个引用 WORD中“Basic”对象的对象变量:Dim  WORDobj as Object

    (2)将 WORD 中的“Basic”对象赋给该对象:Set  WORDobj=CreateObject(" WORD.Basic")

    (3)可以使用大多数 WORDBasic语句和函数控制 WORD或 WORD文档,使用方法和在 WORD宏中使用 WORDBasic指令的方法基本相同。

    (4)关闭 WORD:Set  WORDobj =Nothing。

    注意:“Basic”对象不支持关闭它自己的一个方法。即若在OLE自动化中关闭了 WORD,则对象被置为Nothing,便不能再对对象进行操作,程序出错。

    2.2  VB指令与 WORDBasic指令的差异

    (1)有一些语句和函数不能使用,包括:控制结构,如While…Wend和If…Then…Else;声明语句,如Dim;定制对话框相关的语句:FileExit语句;要求数组变量作为参数的语句或函数。

    (2)也有一些指令使用方法不同。①返回字符串以一个美元符($)结束的 WORDBasic函数的关键字必须括在方括号中。例如,在 WORDBasic宏中的GetBookmark$()语句:mark$=GetBookmark$("Address"),若用 VB调用,必须这样写mark$= WORDobj.[Ge-tBookmark$]("Address")。②选择一个命令按钮用“True”,不选择用“False”

    2.3 对OLE自动化的说明

     WORD可以为OLE自动化给另一个应用提供对象,但是它不能使用OLE自动化访问其它应用中的对象。例如: VB和Excel可以使用OLE自动化访问 WORD,但是 WORD不能使用OLE自动化访问它们。

 

3 在包容器中嵌入 WORD对象

    在 VB中,要访问在包容器中嵌入的 WORD对象,首先要在项目中插入对象。做法如下:在窗体中插入OLE控件,对象类型选择“Microsoft WORD图片”或“Microsoft  WORD文档”,再按“确定”。

    然后用Object属性访问文档或图片,并使用 WORDBasic语句和函数作用于它。嵌入的对象必须在可被访问之前被激活,可以使用Action属性激活OLE控件。例如,使用下面指令访问一个嵌入在称为OLE1的OLE控件中的文档:

        Dim  WORDobj as Object

        OLE1.Action =7

        Set  WORDobj =OLE1.Object.Application.  WORDBasic

    其他方面,使用方法同OLE自动化。使用在包容器中嵌入的 WORD对象, WORD显示的窗口大小、位置与OLE控件定义的大小、位置相同,而且工具栏显示位置与 WORD脱离。这一点与OLE自动化相比,是个不足。

    总之,要想在Microsoft Visual Basic 中控制Microsoft  WORD,最好使用OLE自动化,通过使用 WORDBasic指令对 WORD进行全面控制,而且,用户使用起来与使用Microsoft  WORD一样,非常方便

你可能感兴趣的:(vb)