欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    【精品文献】vb操作word.doc

    • 资源ID:2389386       资源大小:53KB        全文页数:25页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【精品文献】vb操作word.doc

    追加500分求教 VB操作WORD问题悬赏分:200 - 解决时间:2007-7-28 11:42说明,用VB操作WORD,以下源码第一次操作完全正常,正常打开,正常替换,正常退出。进程中并没有留下windword的进程,但第二次继续操作时就出问题,运行到ReplaceWord()就出现462错误,关闭程序重新开始又正常。请指教出错及解决原因,追加到500分 '=打开word= Function OpenWord(FileName) '打开指定word文档 Dim wordApp As New Word.Application Dim wordDoc As New Word.Document Set wordApp = CreateObject("Word.Application") wordApp.Visible = False Set wordDoc = wordApp.Documents.Open(FileName) End Function =替换关键字= Function ReplaceWord(SearchStr, ReplaceStr) '全部替换函数 Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = SearchStr .Replacement.Text = ReplaceStr .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll End Function '=另存为= Function SaveAsWord(DiskStr, NameStr) ChangeFileOpenDirectory DiskStr ActiveDocument.SaveAs FileName:=NameStr, FileFormat:=wdFormatDocument _ , LockComments:=False, Password:="", AddToRecentFiles:=True, _ WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _ SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _ False Application.Documents.Close Application.Quit End Function '=清除对象= Function CloseWord() Set wordDoc = Nothing '清除文件实例 Set wordApp = Nothing '清除WORD实例 End Function问题补充:根据小fisher的答案,已经解决问题,另外在SaveAsWord过程中,ChangeFileOPenDirectory DiskStr更改为ChangeFileOpenDirectory DiskStr ,ActiveDocument.SaveAs更改为wordDoc.SaveAs,再加上原先小fisher提到要更改的地方,已经完美解决,谢谢! PS:由于百度只能2次提高悬赏,每次50分,所以现在只有200分,未能对现500分的诺言,所以只有另开贴来加送300分!提问者: 有野问 - 经理 五级 最佳答案1) Function ReplaceWord(SearchStr, ReplaceStr) '全部替换函数 Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find . 这个函数过程有错误!因为Selection是word的对象而不是VB的对象,所以不能在VB中直接引用,必须用wordApp.Selection替换掉Selection才行! 这段代码在word VBA中调试不会出问题,但移植到VB中时要注意。 2)wordApp和wordDoc必须定义为全局变量,在模块公有部分使用 Dim wordApp As Word.Application Dim wordDoc As Word.Document 来定义 然后在OpenWord(FileName)过程中使用Set wordApp =New Word.Application 和Set wordDoc = wordApp.Documents.Open(FileName),否则在CloseWord()过程中wordApp和wordDoc两个变量将会是未初始化的Variant类型。 3)Function SaveAsWord(DiskStr, NameStr)中的Application须使用wordApp替换,道理同1)。_-网上说 在Visual Basic中创建Word文档使用语句 Dim newDoc As Word.Document Set newDoc = new Word.Document 但是VB会提示上述语句 “用户定义类型未定义” 另一种创建的方法是 Dim MsWord As Object Set MsWord = CreateObject("Word.Basic") MsWord.AppShow MsWord.FileNewDefault 可以创建 但是下述语句没办法使用(即对该文档的一些操作) With MsWord .Content.Font.Name = "宋体" .Content.Font.Size = 12 .Content.Paragraphs.LineSpacing = 15.5 End With 请教各位高手指点,我想在vb中创建一个word文档,并将程序计算的一堆结果,在该文档中按一定的格式打印出来。 另,我在word中录制了一段宏,请问在VB中如何调用,要求代码 Sub zz() ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=6, NumColumns:= _ 6, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _ wdAutoFitFixed With Selection.Tables(1) If .Style "网格型" Then .Style = "网格型" End If .ApplyStyleHeadingRows = True .ApplyStyleLastRow = True .ApplyStyleFirstColumn = True .ApplyStyleLastColumn = True End With Selection.TypeText Text:="1" Selection.MoveRight Unit:=wdCell Selection.TypeText Text:="2" Selection.MoveRight Unit:=wdCell Selection.TypeText Text:="3" Selection.MoveRight Unit:=wdCell Selection.TypeText Text:="4" Selection.MoveRight Unit:=wdCell Selection.TypeText Text:="5" End sub提问者: zhaizhaiya - 助理 三级 最佳答案将 With MsWord .Content.Font.Name = "宋体" .Content.Font.Size = 12 .Content.Paragraphs.LineSpacing = 15.5 End With 改写为 MsWord.Content.Font.Name = "宋体" MsWord.Content.Font.Size = 12 MsWord.Content.Paragraphs.LineSpacing = 15.5 就可以了。 _-用vb读word时,在程序读完,为什么还有关联,怎样给她关联除啦悬赏分:0 - 解决时间:2008-10-23 10:06用vb实现读word程序的操作! 也就是说当我运行vb程序时读啦一次word 第二次再执行时还是第一次的结果! 例如执行下面这个语句时: If NewDoc.Paragraphs(1).Range.Font.Name = "新 宋 体" Then s = s + 0.5 x = MsgBox("s=" + Str$(s), 64, "字体为1.5") 执行第一次之后,再改程序,执行时,总是提示word在另一个地方已经打开,实际上没有打开,我想这是由于关联的问题!提问者: lcs6678 - 助理 二级 最佳答案在任务管理器下的进程下看看,肯定打开了。 不知道你是用什么方法定义的word对象。 如果这样定义: Dim a As Object, b As Object, c As Object Set a = CreateObject("word.application") Set b = a.Documents.open("c:1 .doc") 用以下语句关闭 b.close a.quit _在VB如何存取word格式的文件悬赏分:30 - 解决时间:2006-9-12 08:30我想把用vb计算的一堆结果打印在word里面,并且有固定格式的简单排版,最好能在word中打印一些表格,请问用什么样的函数或者对象实践?希望高手帮忙,要是能加一点说明,更加感激不尽提问者: zhaizhaiya - 助理 二级 最佳答案我帮你搜索到了两种方法 虽然我自己也不懂 但是也许你会懂吧 通过VBA进行WORD调用,要替换WORD中固定位置的值,可以事先在文档中定义标签,然后修改标签的内容即可,不用查找。 VB中用VBA调用WORD的方法: 菜单-工程-引用->Microsoft Word 9.0 Object Library (后面的数字为版本号) Dim wdApp As New Word.Application Dim docApp As New Word.Document 具体用怎么用标签替换,可以到WORD中录制宏看看就知道了,宏可以直接在VB中通过VBA执行。 方法2 使用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)有一些语句和函数不能使用,包括:控制结构,如WhileWend和IfThenElse;声明语句,如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一样,非常方便 _用VB如何在WORD指定位置上插入文字?悬赏分:150 - 解决时间:2006-12-6 10:21提问者: sxtyhjh - 见习魔法师 二级 最佳答案在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代码:1word没有安装 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

    注意事项

    本文(【精品文献】vb操作word.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开