怎样在VB中控制WORD

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 firetoucher 的 blog





    使用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控件,对象类型选择“microsoftword图片”或“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一样,非常方便

本文关键:Visual Basic
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top