用 OLE ,打开word 文件
运行时用 OLE 容器控件创建对象
要在运行时创建链接或嵌入对象,需要在代码中使用方法和属性。OLE 容器控件有各种用来操作链接或嵌入对象的属性和方法。关于应用于 OLE 容器控件的全部属性和方法的清单,请参阅“OLE 容器控件”。使用 Object 属性
通过使用 OLE 容器控件的 Object 属性,可以使用链接或嵌入对象的属性和方法。Object 属性是运行时、只读属性,它保持对 OLE 容器控件中的对象的引用。使用该属性执行 OLE 容器控件的自动化任务,以及程序化操作对象支持的属性和方法:strObjName = oleObj1.Object.Name为使用此属性,OLE 容器控件必须包含可编程的对象。关于可编程对象的详细信息,请参阅“ActiveX 部件的类型”。运行时创建链接对象
可以用OLE容器控件的 CreateLink 方法,在运行时从文件中创建一个链接对象。这种方法需要一个文件参数 sourcedoc,从这个文件创建对象;还需要一个可选参数 sourceitem,它规定了想要从源文件中链接的数据。运行时,下面代码创建链接对象:oleObj1.CreateLink "C:\Excel\Test.xls"注意 如果用“CreateLink”创建一个链接的对象,不必在“属性”窗口设置“类”、“SourceDoc”和“SourceItem”属性。详细信息 请参阅“CreateLink 方法”。在运行时创建嵌入对象
欲在运行时,从文件中创建一个嵌入的对象,可以使用 CreateEmbed 方法。这种方法有两个参数,sourcedoc 和 class(如果指定 SourceDoc,class 是可选的)。Sourcedoc 决定对象的模板,而 class 决定对象的类型。当用 CreateEmbed 时,不需要设置 SourceDoc 和 Class 属性.下列代码,用现存文件作为对象的模板创建嵌入的对象。oleObj1.CreateEmbed "Q1profit.xls"详细信息 请参阅“CreateEmbed 方法”。当创建一个空的嵌入的对象时,最好激活将要为对象提供数据的 ActiveX 部件。此时,可以使用 DoVerb 方法。它允许用户在运行时将任何数据输入应用程序中。然后,用户选择 ActiveX 部件的 Update 命令(这种菜单命令将出现在部件的“文件”菜单上),显示这些最新进入 OLE 容器控件中的数据。要在运行时创建一个空的嵌入对象,请按照以下步骤执行: 不指定源文档,用 CreateEmbed 方法创建一个空的嵌入对象。例如,下面的 代码在 OLE 容器控件中插入一个 Microsoft Excel Worksheet 的文件模板。 
oleObj1.CreateEmbed "","Excel.Sheet"使用 DoVerb 的方法。DoVerb 方法的缺省动词依应用程序而定。对 Micosoft Excel,缺省的动词是 Edit。 
例如,下列代码创建一个空的嵌入对象,然后激活使用缺省 DoVerb 操作创建该对象的应用程序。oleObj1.CreateEmbed "", "Excel.Sheet"
oleObj1.DoVerb -5  '激活当创建一个包含有不同应用程序的多种信息的文档应用程序时,提供空的嵌入对象是有效的方法。关于更详细的信息,请参阅“运行时让用户规定对象”。将数据库与 OLE 容器控件绑定
可以将 OLE 容器控件与存储在 Microsoft Jet 数据库引擎或 Microsoft Access 数据库中的数据绑定。如果有一个雇员照片表的数据库,就可能要这么做。如果这些照片作为对象被存储,可以将它们与 OLE 容器控件绑定,并将它们作为用数据控件访问的每个记录显示在窗体上。为了将数据与这些数据库中的数据绑定,需要在 DataSource 属性中规定数据源(数据集名),并在 OLE 容器控件的 Datafield 属性中规定来自数据源的字段的名称。当从数据库显示一个对象时,OLE 容器控件允许用户激活、编辑和更新对象。如同任何被绑定的控件一样,当记录位置被改变时,被更新的对象将自动写回数据库。详细信息   请参阅《数据访问指南》。

解决方案 »

  1.   

    打开office word object library
      

  2.   

    我已经打开了 microsoft office 9.0 object library和microsoft word 9.0 object library.之后该怎么做呢?
      

  3.   

    dim wdapp as word.application
    dim wordtext as stringwdapp.selection.wholestory
    wordtext.wdapp.selection.text
      

  4.   

    错了,最后一句是
    wordtext = wdapp.selection.text
      

  5.   

    wdapp.selection.wholestory
    这一句出现“对象变量或with块变量未设置”的提示,实时错误'91'
      

  6.   

    sheky:
    帮忙帮到底,我现在还是没有解决问题!
      

  7.   

    我也碰到这个问题,
    到底怎么才能方便地读取word文档(.doc)里的内容呢?当然,读出来的不能是乱码?
      

  8.   

    Private Sub Command1_Click()
       Dim wdapp As Word.application
       Set wdapp = CreateObject("Word.Application")
       wdapp.Documents.Open FileName:="d:\temp.doc"
       wdapp.selection.wholestory
       Text1 = wdapp.selection.Text
       wdapp.Quit
    End Sub
    [email protected]
      

  9.   

    谢谢阿东和sheky,我现在能把整篇word文档都读出来了。但是如果我还要抽取其中的几行,那该怎么做呢?
      

  10.   

        从WORD中读出的内容是看不到回车符的,所以所有内容全部连续显示,但并非是没有回车符,这可能是因为VB6中用的是UNICODE代码的原因,如果要从中挑出一部分行,得首先将其分行。为此我专门为你写了以下程序段,它可以实现将读出来的内容以纯文本文件的形式存放在磁盘上,并按原来在WORD中的行分好。接下来的工作就再从这个文件中读出你要的行就可以了。Private Sub Command1_Click()
    Dim wdapp As Word.application
    Set wdapp = CreateObject("Word.Application")
    wdapp.Documents.Open FileName:="d:\temp.doc"
    wdapp.selection.wholestory
    wtx = wdapp.selection.Text
    wdapp.Quit
    Open "d:\abc.txt" For Output As #1 '要写入的文件
    Do
        p = InStr(wtx, Chr(13)) '找回车符的位置
        If p = 0 Then Exit Do   '找不到就结束
        ln = Len(wtx)
        px = Left(wtx, p - 1)   '取出一行
        Print #1, px            '写入文件
        wtx = Right(wtx, ln - p)'将已经取走的部分去掉
    Loop
    Print #1, wtx               '将最后一行写入文件
    Close
    End Sub能够对您有所帮助是我最大的快乐!!!欢迎交流!