WordVBA常用对象与应用案例.ppt
《WordVBA常用对象与应用案例.ppt》由会员分享,可在线阅读,更多相关《WordVBA常用对象与应用案例.ppt(106页珍藏版)》请在三一办公上搜索。
1、第二章 Word VBA常用对象与应用案例,1,对象的概念和对象变量的定义,对象的概念 对象(object)是一些相关的变量和方法的集合。Office VBA是一种面向对象的编程语言。对象是VBA的结构基础,VBA应用程序就是由许多对象组成。在Office中,VBA对象可分为集合对象和独立对象两种。独立对象代表一个Office中的一个元素,如Word中的一个文档、一个段落、一个书签或单独的字符。集合也是一个对象,该对象包含多个其他对象,通常这些对象属于相同的类型;例如,在Word中,一个Documents集合对象中可包含文档中的所有Document对象。修改与对象相关的方法或属性就可以定制对象
2、,也可修改整个的对象集合。在VBA中,有一个变量的数据类型是Object,即对象型变量。使用对象变量代替一个对象是指:不直接引用该对象,而使用对象变量访问其代表的对象,2,对象的概念和对象变量的定义,例如,一段程序同时处理三个打开的Word文档,从一个文档中将一些文本复制到另外两个文档中去。如果仅仅打开了这三个文档,就可以分别引用,如写成Documents(1)、Documents(2)、Documents(3),因为这些文档在Documents集合中占有前三个位置。然而,如果程序改变了文档的顺序,关闭一个或多个文档,或者生成一个和多个新的文档,情况立刻就会变得混乱起来。但是如果使用了对象变量
3、(例如,命名为Words1、Words2、Words3)去引用这些文档,情况就简单得多。这是因为不论在Documents集合中哪个文档处在第一的位置,总可以用对象变量Wordsl3进行引用,并了解将要使用的文档。,3,对象的概念和对象变量的定义,对象变量的定义Dim MyObject1 As Object Set objectvariable=expression|nothing例如,下面的语句声明MyObject1变量,并赋值为Excel的当前工作簿:Dim exObject1 As Object Set exObject1=ActiveDocument 而下面的语句使用Nothing关键字
4、,则释放exObject1对象变量占用的内存空间:Set exObject1=Nothing,4,Word中的常用对象,Word中常用的对象有:Application对象、Document对象、Range对象、Selection对象、Paragraph对象、Sentences对象、Words对象、Characters对象、Find与Replacement对象、Table(包括Column、Row和Cell)对象等。其中,Application对象是Word中最高级别的对象,它就是Word应用程序本身。,5,Word中的常用对象,Application对象 用户启动一个Word时的同时,也创建了
5、一个Application对象。Application对象位于对象模型的最高级,它代表整个Word应用程序,而且此对象的属性和方法独立于所有文档之外,全部针对的是Word应用程序本身。用户可以使用Application对象的属性或方法来控制或返回应用程序范围内的特性、控制应用程序窗口的外观等。可以使用Application属性来返回Word Application对象。如,以下的语句表示从视图状态切换到打印预览状态。Application.PrintPreview=True,6,Word中的常用对象,Sub application1()With Application.WindowState=
6、wdWindowStateNormal.Height=450.Width=600 End WithEnd Sub,7,Word中的常用对象,8,Word中的常用对象,9,Word中的常用对象,用户可以用以下的代码检查Documents集合的Count属性来确认是否有文档是打开的。Sub application2()If Documents.Count=0 Then If MsgBox(没有文档被打开!&vbCr&vbCr&_你希望创建一个空白文档吗?,_vbYesNo+vbExclamation,No Doccnnent Is Open)=vbYes Then Documents.Add El
7、se End End If End IfEnd Sub,10,Word中的常用对象,如果对正在使用哪个文档进行操作存在疑问,则应声明一个Document对象变量,并使用这个对象变量来工作,而不是使用ActiveDocument对象来工作。例如,下述语句声明一个Document对象,并将ActiveDocument对象指派给它,所以以后的代码可以针对这Document对象工作。Dim myDocument As DocumentSet myDocument=ActiveDocumentWith myDocument.PageSetup.RightMargin=InchesToPoints(1)右
8、页边距设置为1 英寸(72 磅)End With,11,Word中的常用对象,Application对象应用举例下面代码显示活动文档的路径和文件名。MsgBox ActiveDocument.Path&Application.PathSeparator&ActiveDocument.Name 下面代码显示活动文档的名称,如果没有打开的文档,则显示一条消息。If=1 Then MsgBox ActiveDocument.NameElse MsgBox 没有文档被打开!End If,12,Word中的常用对象,下面代码将所选内容为插入点,然后创建一个区域,包括选定内容的后面五个字符。Dim rng
9、Temp As RangeSelection.Collapse Direction:=wdCollapseStartSet rngTemp=ActiveDocument.Range(Start:=Selection.Start,End:=Selection.Start+5)下面代码在活动文档的开头插入文本,然后打印该文档。Dim rngTemp As RangeSet rngTemp=ActiveDocument.Range(Start:=0,End:=0)With rngTemp.InsertBefore 公司报告.Font.Name=Arial.Font.Size=24.InsertPar
10、agraphAfterEnd WithActiveDocument.PrintOut,13,Word中的常用对象,将插入点移至曾经进行过编辑的下一个位置。Application.GoForward 打印活动文档的当前页面。ActiveDocument.PrintOut Range:=wdPrintCurrentPage 打印当前文件夹中的所有文档。adoc=Dir(*.DOC)Dir 函数用于返回所有扩展名为“.doc”的文件名。Do While adoc Application.PrintOut FileName:=adoc adoc=Dir()Loop 打印活动窗口中文档的前三页。Rang
11、e:=wdPrintFromTo,From:=1,To:=3,14,Word中的常用对象,将Word应用程序窗口调整为 7 英寸宽、6 英寸高。With Application.WindowState=wdWindowStateNormal.Resize Width:=InchesToPoints(7),Height:=InchesToPoints(6)End With 退出Word并提示用户保存自上次保存后已修改过的每篇文档。Application.Quit SaveChanges:=wdPromptToSaveChanges 用户保存所有文档。如果用户单击“是”按钮,则在退出Word前,所
12、有的文档都将以Word格式进行保存。Dim intResponse As IntegerintResponse=MsgBox(你将希望保存所有文档吗?,vbYesNo)If intResponse=vbYes Then Application.Quit _ SaveChanges:=wdSaveChanges,OriginalFormat:=wdWordDocument,15,Word中的常用对象,Documents/Document对象 当用户在Word中打开或创建一个文件的同时,也创建了一个Document对象。用户可以使用Document对象或Documents集合的属性或方法来打开、创
13、建、保存、激活或者关闭文件。,16,17,Word中的常用对象,18,Word中的常用对象,19,Word中的常用对象,显示Documents集合的第一篇文档的名字。Sub DocumentItem()If Documents.Count=1 Then MsgBox Documents.Item(1).Name End IfEnd Sub以只读方式打开文档MyDoc.doc。Sub OpenDoc()Documents.Open FileName:=C:MyFilesMyDoc.doc,ReadOnly:=TrueEnd Sub如果活动文档在上次保存后进行了修改,则保存活动文档。If Acti
14、veDocument.Saved=False Then ActiveDocument.Save,20,Word中的常用对象,保存Documents集合中的每一文档,但在保存文档前不提示用户。Documents.Save NoPrompt:=True,_ OriginalFormat:=wdOriginalDocumentFormat(5)以下代码根据Normal模板新建一篇文档,然后显示“另存为”对话框。以下代码将对上次保存后的文档进行修改和保存。Dim docLoop As DocumentFor Each docLoop In Documents If docLoop.Saved=Fals
15、e Then docLoop.SaveNext docLoop,21,Word中的常用对象,以下代码先将文档的左右边距设置为 0.5 英寸,然后打印所有打开的文档。Dim docLoop As DocumentFor Each docLoop In Documents With docLoop.PageSetup.LeftMargin=InchesToPoints(0.5).PageSetup.RightMargin=InchesToPoints(0.5).PrintOut End WithNext docLoop 以下代码表示以只读方式打开文档Doc.docDocuments.Open Fi
16、leName:=C:FilesDoc.doc,ReadOnly:=True,22,Word中的常用对象,SelectionSelection对象代表窗口或窗格中的当前所选内容。若文档中没有所选内容,则代表插入点。每个文档窗格只能有一个活动的Selection对象,并且整个应用程序中只能有一个活动的Selection对象。与Range对象不同的是,Selection对象代表的选定内容既可以是文档中的一个区域也可以仅仅是一个插入点。,23,24,25,26,Word中的常用对象,将第一个窗口的所选内容复制到下一个窗口If Windows.Count=2 ThenWindows(1).Selecti
17、on.CopyWindows(1).Next.ActivateSelection.PasteEnd If 本例也可使用下面的语句。ActiveDocument.ActiveWindow.Panes(1).Selection.CopyActiveDocument.ActiveWindow.Panes(2).Selection.Paste下面代码表示如果插入点不在表格中,则将所选内容插入点移至下一张表格。If Selection.Information(wdWithInTable)=False ThenSelection.GoToNext What:=wdGoToTableEnd If,27,Wo
18、rd中的常用对象,在活动文档开头插入一个数学表达式,计算该表达式,并将计算结果插入该区域。其结果为“1+1=2”。Set myRange=ActiveDocument.Range(0,0)myRange.InsertBefore 1+1 myRange.InsertAfter=&myRange.Calculate 计算选定的数学表达式并显示其结果。MsgBox And the answer is.&Selection.Calculate 从活动文档中删除所有文字和段落格式设置。Sub ClrFmtg()ActiveDocument.Select:Selection.ClearFormattin
19、gEnd Sub,28,Word中的常用对象,从活动文档的第二至第四段删除所有文字和段落的格式设置。Sub ClrFmtg2()ActiveDocument.Range(Start:=ActiveDocument.Paragraphs(2).Range.Start,_ End:=ActiveDocument.Paragraphs(4).Range.End).Select:Selection.ClearFormattingEnd SubIf Selection.Type=wdSelectionNormal Then Selection.Copy:End If 将活动文档的内容复制为图片,并将其作
20、为图片粘贴到文档的结尾。Sub CopyPasteAsPicture()With Selection.CopyAsPicture.Collapse Direction:=wdCollapseEnd.PasteSpecial DataType:=wdPasteMetafilePicture End WithEnd Sub,29,Word中的常用对象,将活动文档第一段的格式复制到第二段。ActiveDocument.Paragraphs(1).Range.SelectSelection.CopyFormatActiveDocument.Paragraphs(2).Range.SelectSelec
21、tion.PasteFormat 剪切第一个段落的第一个单词,并将该单词粘贴到该段落的末尾。With ActiveDocument.Paragraphs(1).Range.Words(1).Cut.Collapse Direction:=wdCollapseEnd.Move Unit:=wdCharacter,Count:=-1.PasteEnd With,30,Word中的常用对象,剪切所选内容,并粘贴到新文档中。If Selection.Type=wdSelectionNormal Then Selection.Cut End If 选择并删除活动文档中的内容。Sub DeleteSele
22、ction()Dim intResponse As Integer intResponse=MsgBox(Are you sure you want to&_ delete the contents of the document?,vbYesNo)If intResponse=vbYes Then Selection.Delete End IfEnd Sub,31,Word中的常用对象,将所选内容在表格中向前移动三个单元格。If Selection.Information(wdWithInTable)=True Then Selection.Move Unit:=wdCell,Count:=
23、3End If 以下代码将当前所选内容的文本赋值给变量strTemp,如果该变量是一个段落标记,则删除其最后一个字符。Dim strTemp as StringstrTemp=Selection.TextIf Right(strTemp,1)=vbCr Then strTemp=Left(strTemp,Len(strTemp)-1)以下代码“Dear”替换活动文档的第一个词。Set myRange=ActiveDocument.Words(1)myRange.Text=Dear,32,Word中的常用对象,新文档中插入10行文字。Documents.AddFor i=1 To 10 Sele
24、ction.Text=Line&Str(i)&Chr(13)Selection.MoveDown Unit:=wdParagraph,Count:=1Next i 用“Goodbye”替换活动文档中的“Hello”。Set myRange=ActiveDocument.ContentWith myRange.Find.ClearFormatting.Replacement.ClearFormatting.Text=Hello.Replacement.Text=Goodbye.Execute Replace:=wdReplaceAllEnd With,33,Word中的常用对象,批量设置文档中图
25、片的格式。Sub 批量设置图片格式()Dim I,Count As Integer Count=计算当前文档中的图片总数 For I=1 To Count With ActiveDocument.InlineShapes(I).PictureFormat 当前文档中的每一个图片格式.Brightness=0.5 设置图片亮度.Contrast=0.5 设置对比度.CropBottom=10 底部剪切10磅 End With NextEnd Sub,34,Word中的常用对象,【例5-1】百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各有多少?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- WordVBA 常用 对象 应用 案例

链接地址:https://www.31ppt.com/p-5576502.html