如何用程序实现在word文件中搜索关键字?偶对ole不熟那位大侠能提供思路或者相关的函数

解决方案 »

  1.   

    打开WORD->ALT+F11->F2->F1:
    Find 属性
    请参阅 应用于 示例 特性 
    返回一个 Find 对象,该对象包含了查找操作所需的条件。只读。注意   将本属性用于 Selection 对象时,如果查找到了所需内容,则所选内容就会改变。如将本属性用于 Range 对象,则除非用 Select 方法,否则所选内容不改变。示例
    下面的示例在文档中向前搜索“Microsoft”。如果找到了,就自动选定该词。With Selection.Find
        .Forward = True
        .ClearFormatting
        .MatchWholeWord = True
        .MatchCase = False
        .Wrap = wdFindContinue
        .Execute FindText:="Microsoft"
    End With
    本示例在活动文档中的每个样式为标题 3 的段落前插入“Tip:”。在每次找到该样式时,Do Loop 语句重复同样的一系列操作。With ActiveDocument.Content.Find
        .ClearFormatting
        .Style = wdStyleHeading3
        Do While .Execute(FindText:="", Forward:=True, _
                Format:=True) = True
            With .Parent
                .StartOf Unit:=wdParagraph, Extend:=wdMove
                .InsertAfter "Tip: "
                .Move Unit:=wdParagraph, Count:=1
            End With
        Loop
    End With转为DELPHI:procedure TForm1.Button1Click(Sender: TObject);
    var MSWord: Variant;
    begin
      MSWord := CreateOLEObject('Word.Application');//连接Word
      MSWord.Documents.Open(FileName:='d:\test.doc', ReadOnly:=True);//打开外部Word文档
      MSWord.Visible := 1;//是否显示文件编辑  MSWord.Selection.Find.Forward := True;
      MSWord.Selection.Find.ClearFormatting;
      MSWord.Selection.Find.MatchWholeWord := True;
      MSWord.Selection.Find.MatchCase := False;
      MSWord.Selection.Find.Wrap := 1;  // <-wdFindContinue为1
      MSWord.Selection.Find.Execute(FindText:='Microsoft');
    end;
      

  2.   

    感谢 imacih如果我不想让word显示出来
    那么这句MSWord.Documents.Open(FileName:='d:\test.doc', ReadOnly:=True);
    应该改成什么
      

  3.   

    只是广告
    请大家支持下。。谢谢!
    http://community.csdn.net/Expert/topic/3632/3632147.xml?temp=.2835962
    http://community.csdn.net/Expert/topic/3607/3607671.xml?temp=.128689