在VB6.0中,操作word,使用它强大的查找、替换、删除、复制、翦切功能。还可以把特定字符替换成图片。有了它你就可以使用数据库中的内容或图片文件替换word文件中的特定字符。 
  只要把下列内容复制到写字板中,另存为SetWord.cls文件,然后在把它添加到工程中,就可以使用了。 
VERSION 1.0 CLASS BEGIN   MultiUse = -1  'True   Persistable = 0  'NotPersistable   DataBindingBehavior = 0  'vbNone   DataSourceBehavior  = 0  'vbNone   MTSTransactionMode  = 0  'NotAnMTSObject END Attribute VB_Name = "SetWord" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = False Private mywdapp As Word.Application Private mysel As Object 
'属性值的模块变量 Private C_TemplateDoc As String Private C_newDoc As String Private C_PicFile As String Private C_ErrMsg As Integer 
Public Event HaveError() Attribute HaveError.VB_Description = "出错时激发此事件.出错代码为ErrMsg属性" '*************************************************************** 'ErrMsg代码:1-word没有安装 2 - 缺少参数  3 - 没权限写文件 '           4 - 文件不存在 ' '*************************************************************** 
Public Function ReplacePic(FindStr As String, Optional Time As Integer = 0) As Integer Attribute ReplacePic.VB_Description = "查找FindStr,并替换为PicFile所指向的图片文件,替换次数由time参数确定,为0时,替换所有" 
'******************************************************************************** '    从Word.Range对象mysel中查找所有FindStr,并替换为PicFile图像 '          替换次数由time参数确定,为0时,替换所有 '******************************************************************************** 
If Len(C_PicFile) = 0 Then     C_ErrMsg = 2     Exit Function End If 
Dim i As Integer Dim findtxt As Boolean 
    mysel.Find.ClearFormatting     mysel.Find.Replacement.ClearFormatting     With mysel.Find         .Text = FindStr         .Replacement.Text = ""         .Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchByte = True         .MatchWildcards = False         .MatchSoundsLike = False         .MatchAllWordForms = False     End With    mysel.HomeKey Unit:=wdStory    findtxt = mysel.Find.Execute(Replace:=True)    If Not findtxt Then         ReplacePic = 0         Exit Function    End If    i = 1    Do While findtxt         mysel.InlineShapes.AddPicture FileName:=C_PicFile         If i = Time Then Exit Do         i = i + 1         mysel.HomeKey Unit:=wdStory         findtxt = mysel.Find.Execute(Replace:=True)    Loop    ReplacePic = i End Function 
Public Function FindThis(FindStr As String) As Boolean Attribute FindThis.VB_Description = "查找FindStr,如果模板中有FindStr则返回True" If Len(FindStr) = 0 Then     C_ErrMsg = 2     Exit Function End If     mysel.Find.ClearFormatting     mysel.Find.Replacement.ClearFormatting     With mysel.Find         .Text = FindStr         .Replacement.Text = ""         .Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchByte = True         .MatchWildcards = False         .MatchSoundsLike = False         .MatchAllWordForms = False     End With    mysel.HomeKey Unit:=wdStory    FindThis = mysel.Find.Execute End Function 
Public Function ReplaceChar(FindStr As String, RepStr As String, Optional Time As Integer = 0) As Integer Attribute ReplaceChar.VB_Description = "查找FindStr,并替换为RepStr,替换次数由time参数确定,为0时,替换所有" '******************************************************************************** '     从Word.Range对象mysel中查找FindStr,并替换为RepStr '          替换次数由time参数确定,为0时,替换所有 '******************************************************************************** Dim findtxt As Boolean 
If Len(FindStr) = 0 Then     C_ErrMsg = 2     RaiseEvent HaveError     Exit Function End If 
    mysel.Find.ClearFormatting     mysel.Find.Replacement.ClearFormatting     With mysel.Find         .Text = FindStr         .Replacement.Text = RepStr         .Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchByte = True         .MatchWildcards = False         .MatchSoundsLike = False         .MatchAllWordForms = False     End With     
 If Time > 0 Then     For i = 1 To Time          mysel.HomeKey Unit:=wdStory          findtxt = mysel.Find.Execute(Replace:=wdReplaceOne)          If Not findtxt Then Exit For      Next      If i = 1 And Not findtxt Then          ReplaceChar = 0      Else         ReplaceChar = i      End If  Else      mysel.Find.Execute Replace:=wdReplaceAll  End If End Function 
  
Public Function GetPic(PicData() As Byte, FileName As String) As Boolean Attribute GetPic.VB_Description = "把图像数据PicData,存为PicFile指定的文件" '******************************************************************************** '     把图像数据PicData,存为PicFile指定的文件 '******************************************************************************** On Error Resume Next 
If Len(FileName) = 0 Then     C_ErrMsg = 2     RaiseEvent HaveError     Exit Function End If 
Open FileName For Binary As #1 
If Err.Number <> 0 Then     C_ErrMsg = 3     Exit Function End If 
'二进制文件用Get,Put存放,读取数据 Put #1, , PicData Close #1 
C_PicFile = FileName GetPic = True 
End Function 
 Public Sub DeleteToEnd() Attribute DeleteToEnd.VB_Description = "删除从当前位置到结尾的所有内容" mysel.EndKey Unit:=wdStory, Extend:=wdExtend mysel.Delete Unit:=wdCharacter, Count:=1 End Sub 
Public Sub MoveEnd() Attribute MoveEnd.VB_Description = "光标移动到文档结尾" '光标移动到文档结尾 mysel.EndKey Unit:=wdStory End Sub 
Public Sub GotoLine(LineTime As Integer) mysel.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=LineTime, Name:="" End Sub 
Public Sub OpenDoc(view As Boolean) Attribute OpenDoc.VB_Description = "打开Word文件,View确定是否显示Word界面" On Error Resume Next 
'******************************************************************************** '     打开Word文件,并给全局变量mysel赋值 '******************************************************************************** 
If Len(C_TemplateDoc) = 0 Then     mywdapp.Documents.Add Else     mywdapp.Documents.Open (C_TemplateDoc) End If 
    If Err.Number <> 0 Then         C_ErrMsg = 4         RaiseEvent HaveError         Exit Sub     End If          mywdapp.Visible = view     mywdapp.Activate     Set mysel = mywdapp.Application.Selection     'mysel.Select      End Sub 
Public Sub OpenWord() On Error Resume Next 
'******************************************************************************** '     打开Word程序,并给全局变量mywdapp赋值 '******************************************************************************** 
    Set mywdapp = CreateObject("word.application")     If Err.Number <> 0 Then         C_ErrMsg = 1         RaiseEvent HaveError         Exit Sub     End If End Sub 
Public Sub ViewDoc() Attribute ViewDoc.VB_Description = "显示Word程序界面" mywdapp.Visible = True End Sub 
Public Sub AddNewPage() Attribute AddNewPage.VB_Description = "插入分页符" mysel.InsertBreak Type:=wdPageBreak End Sub 
Public Sub WordCut() Attribute WordCut.VB_Description = "剪切模板所有内容到剪切板"     '保存模板页面内容     mysel.WholeStory     mysel.Cut     mysel.HomeKey Unit:=wdStory End Sub 
Public Sub WordCopy() Attribute WordCopy.VB_Description = "拷贝模板所有内容到剪切板"     mysel.WholeStory     mysel.Copy     mysel.HomeKey Unit:=wdStory End Sub 
Public Sub WordDel()     mysel.WholeStory     mysel.Delete     mysel.HomeKey Unit:=wdStory End Sub 
Public Sub WordPaste() Attribute WordPaste.VB_Description = "拷贝剪切板内容到当前位置" '插入模块内容 mysel.Paste End Sub 
Public Sub CloseDoc() Attribute CloseDoc.VB_Description = "关闭Word文件模板" '******************************************************************************** '     关闭Word文件模本 '******************************************************************************** On Error Resume Next 
     mywdapp.ActiveDocument.Close False 
If Err.Number <> 0 Then     C_ErrMsg = 3     Exit Sub End If 
End Sub 
Public Sub QuitWord() '******************************************************************************** '     关闭Word程序 '******************************************************************************** On Error Resume Next 
    mywdapp.Quit      If Err.Number <> 0 Then     C_ErrMsg = 3     Exit Sub End If End Sub 
Public Sub SavetoDoc() Attribute SavetoDoc.VB_Description = "保存当前文档为FileName指定文件" On Error Resume Next 
'并另存为文件FileName 
If Len(C_newDoc) = 0 Then     C_ErrMsg = 2     RaiseEvent HaveError     Exit Sub End If 
    mywdapp.ActiveDocument.SaveAs (C_newDoc)          If Err.Number <> 0 Then         C_ErrMsg = 3         RaiseEvent HaveError         Exit Sub     End If 
End Sub 
 Public Property Get TemplateDoc() As String Attribute TemplateDoc.VB_Description = "模板文件名." TemplateDoc = C_TemplateDoc End Property 
Public Property Let TemplateDoc(ByVal vNewValue As String) C_TemplateDoc = vNewValue End Property 
Public Property Get newdoc() As String Attribute newdoc.VB_Description = "执行CloseDoc方法时,将模板文件另存为此文件名指定的新文件.如果不指定,在执行CloseDoc方法时,将产生一个错误" newdoc = C_newDoc End Property 
Public Property Let newdoc(ByVal vNewValue As String) C_newDoc = vNewValue End Property 
Public Property Get PicFile() As String Attribute PicFile.VB_Description = "图像文件名" PicFile = C_PicFile End Property 
Public Property Let PicFile(ByVal vNewValue As String) C_PicFile = vNewValue End Property 
Public Property Get ErrMsg() As Integer Attribute ErrMsg.VB_Description = "错误信息.ErrMsg代码: 1-word没有安装 2-缺少参数 3-没权限写文件 4-文件不存在" ErrMsg = C_ErrMsg End Property
   
 
  |