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自动化相比,是个不足。
Private Sub word_Click()Dim WordApp As New word.Application
Dim WordDoc As word.Document
Dim myfile As String
cdl.ShowOpen
myfile = cdl.FileName '读取文件全名
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Open(myfile) '在word中打开岁陵文件
End Sub
菜单或者袜伍按钮都可以乎好戚。
知道,不过不能直接读取卖腔,因为微软没有公布加密方式,所以要调用WORD来读取,然后获取它先在工程的引用里面加上Microsoft Word 11.0 Object Library
Dim 剪切板文本
Dim Word文字处理系统界面 As Word.Application '建立一个word.application对销冲象
Dim Word文档 As Word.Document
Dim Word文档文本 As Word.Selection '在word文字处理系统中添加一个文档
Set Word文字处理系统界面 = CreateObject("Word.Application")'选择对象
Word文字处理系统界面.Visible = False'不亏配歼显示word.application,即word文字处理系统界面
Set Word文档 = Word文字处理系统界面.Documents.Open(文件路径)
Set Word文档文本 = Word文字处理系统界面.Selection
Word文档文本.WholeStory
Word文档文本.Copy
剪切板文本 = Clipboard.GetText(vbCFText)'放到text1中
Text1.Text = 剪切板文本
'Clipboard.SetData Temp
Word文档.Close '关闭文档
Word文字处理系统界面.Application.Quit
Set Word文字处理系统界面 = Nothing '清空变量
Set Word文档文本 = Nothing
'完成 *** 作
我通过剪切板来获取文本,因为这样可以保留格式(本人独创)
如果直接获取也是可以的,不过格式全部丢失,所以我的方法会更好一点
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)