第五章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 而下面的语句使用Noth
4、ing关键字,则释放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
6、.WindowState = wdWindowStateNormal .Height = 450 .Width = 600 End With End Sub,7,Word中的常用对象,8,Word中的常用对象,9,Word中的常用对象,用户可以用以下的代码检查Documents集合的Count属性来确认是否有文档是打开的。 Sub application2() If Documents.Count = 0 Then If MsgBox(“没有文档被打开!“ & vbCr & vbCr & _ “你希望创建一个空白文档吗?“, _ vbYesNo + vbExclamation, “No Doc
7、cnnent Is Open“) = vbYes Then Documents.Add Else End End If End If End Sub,10,Word中的常用对象,如果对正在使用哪个文档进行操作存在疑问,则应声明一个Document对象变量,并使用这个对象变量来工作,而不是使用ActiveDocument对象来工作。例如,下述语句声明一个Document对象,并将ActiveDocument对象指派给它,所以以后的代码可以针对这Document对象工作。 Dim myDocument As Document Set myDocument = ActiveDocument With
8、 myDocument .PageSetup.RightMargin = InchesToPoints(1) 右页边距设置为1 英寸(72 磅) End With,11,Word中的常用对象,Application对象应用举例 下面代码显示活动文档的路径和文件名。 MsgBox ActiveDocument.Path & Application.PathSeparator & ActiveDocument.Name 下面代码显示活动文档的名称,如果没有打开的文档,则显示一条消息。 If Application.Documents.Count = 1 Then MsgBox ActiveDocu
9、ment.Name Else MsgBox “没有文档被打开!“ End If,12,Word中的常用对象,下面代码将所选内容为插入点,然后创建一个区域,包括选定内容的后面五个字符。 Dim rngTemp As Range Selection.Collapse Direction:=wdCollapseStart Set rngTemp = ActiveDocument.Range(Start:=Selection.Start, End:=Selection.Start + 5) 下面代码在活动文档的开头插入文本,然后打印该文档。 Dim rngTemp As Range Set rngTe
10、mp = ActiveDocument.Range(Start:=0, End:=0) With rngTemp .InsertBefore “公司报告“ .Font.Name = “Arial“ .Font.Size = 24 .InsertParagraphAfter End With ActiveDocument.PrintOut,13,Word中的常用对象,将插入点移至曾经进行过编辑的下一个位置。 Application.GoForward 打印活动文档的当前页面。 ActiveDocument.PrintOut Range:=wdPrintCurrentPage 打印当前文件夹中的所
11、有文档。 adoc = Dir(“*.DOC“) Dir 函数用于返回所有扩展名为“.doc”的文件名。 Do While adoc “ Application.PrintOut FileName:=adoc adoc = Dir() Loop 打印活动窗口中文档的前三页。 ActiveDocument.ActiveWindow.PrintOut Range:=wdPrintFromTo, From:=“1“, To:=“3“,14,Word中的常用对象,将Word应用程序窗口调整为 7 英寸宽、6 英寸高。 With Application .WindowState = wdWindowSt
12、ateNormal .Resize Width:=InchesToPoints(7), Height:=InchesToPoints(6) End With 退出Word并提示用户保存自上次保存后已修改过的每篇文档。 Application.Quit SaveChanges:=wdPromptToSaveChanges 用户保存所有文档。如果用户单击“是”按钮,则在退出Word前,所有的文档都将以Word格式进行保存。 Dim intResponse As Integer intResponse = MsgBox(“你将希望保存所有文档吗?“, vbYesNo) If intResponse
13、= vbYes Then Application.Quit _ SaveChanges:=wdSaveChanges, OriginalFormat:=wdWordDocument,15,Word中的常用对象,Documents/Document对象 当用户在Word中打开或创建一个文件的同时,也创建了一个Document对象。用户可以使用Document对象或Documents集合的属性或方法来打开、创建、保存、激活或者关闭文件。,16,17,Word中的常用对象,18,Word中的常用对象,19,Word中的常用对象,显示Documents集合的第一篇文档的名字。 Sub Document
14、Item() If Documents.Count = 1 Then MsgBox Documents.Item(1).Name End If End Sub 以只读方式打开文档MyDoc.doc。 Sub OpenDoc() Documents.Open FileName:=“C:MyFilesMyDoc.doc“, ReadOnly:=True End Sub 如果活动文档在上次保存后进行了修改,则保存活动文档。 If ActiveDocument.Saved = False Then ActiveDocument.Save,20,Word中的常用对象,保存Documents集合中的每一文
15、档,但在保存文档前不提示用户。 Documents.Save NoPrompt:=True, _ OriginalFormat:=wdOriginalDocumentFormat (5)以下代码根据Normal模板新建一篇文档,然后显示“另存为”对话框。 Documents.Add.Save 以下代码将对上次保存后的文档进行修改和保存。 Dim docLoop As Document For Each docLoop In Documents If docLoop.Saved = False Then docLoop.Save Next docLoop,21,Word中的常用对象,以下代码先将
16、文档的左右边距设置为 0.5 英寸,然后打印所有打开的文档。 Dim docLoop As Document For Each docLoop In Documents With docLoop .PageSetup.LeftMargin = InchesToPoints(0.5) .PageSetup.RightMargin = InchesToPoints(0.5) .PrintOut End With Next docLoop 以下代码表示以只读方式打开文档Doc.doc Documents.Open FileName:=“C:FilesDoc.doc“, ReadOnly:=True,
17、22,Word中的常用对象,Selection Selection对象代表窗口或窗格中的当前所选内容。若文档中没有所选内容,则代表插入点。每个文档窗格只能有一个活动的Selection对象,并且整个应用程序中只能有一个活动的Selection对象。 与Range对象不同的是,Selection对象代表的选定内容既可以是文档中的一个区域也可以仅仅是一个插入点。,23,24,25,26,Word中的常用对象,将第一个窗口的所选内容复制到下一个窗口 If Windows.Count = 2 Then Windows(1).Selection.Copy Windows(1).Next.Activate
18、 Selection.Paste End If 本例也可使用下面的语句。 ActiveDocument.ActiveWindow.Panes(1).Selection.Copy ActiveDocument.ActiveWindow.Panes(2).Selection.Paste 下面代码表示如果插入点不在表格中,则将所选内容插入点移至下一张表格。 If Selection.Information(wdWithInTable) = False Then Selection.GoToNext What:=wdGoToTable End If,27,Word中的常用对象,在活动文档开头插入一个数
19、学表达式,计算该表达式,并将计算结果插入该区域。其结果为“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.ClearForm
20、atting End Sub,28,Word中的常用对象,从活动文档的第二至第四段删除所有文字和段落的格式设置。 Sub ClrFmtg2() ActiveDocument.Range(Start:=ActiveDocument.Paragraphs(2).Range.Start, _ End:=ActiveDocument.Paragraphs(4).Range.End).Select : Selection.ClearFormatting End Sub If Selection.Type = wdSelectionNormal Then Selection.Copy : Document
21、s.Add.Content.Paste End If 将活动文档的内容复制为图片,并将其作为图片粘贴到文档的结尾。 Sub CopyPasteAsPicture() ActiveDocument.Content.Select With Selection .CopyAsPicture .Collapse Direction:=wdCollapseEnd .PasteSpecial DataType:=wdPasteMetafilePicture End With End Sub,29,Word中的常用对象,将活动文档第一段的格式复制到第二段。 ActiveDocument.Paragraphs
22、(1).Range.Select Selection.CopyFormat ActiveDocument.Paragraphs(2).Range.Select Selection.PasteFormat 剪切第一个段落的第一个单词,并将该单词粘贴到该段落的末尾。 With ActiveDocument.Paragraphs(1).Range .Words(1).Cut .Collapse Direction:=wdCollapseEnd .Move Unit:=wdCharacter, Count:=-1 .Paste End With,30,Word中的常用对象,剪切所选内容,并粘贴到新文档
23、中。 If Selection.Type = wdSelectionNormal Then Selection.Cut Documents.Add.Content.Paste End If 选择并删除活动文档中的内容。 Sub DeleteSelection() Dim intResponse As Integer intResponse = MsgBox(“Are you sure you want to “ & _ “delete the contents of the document?“, vbYesNo) If intResponse = vbYes Then ActiveDocum
24、ent.Content.Select Selection.Delete End If End Sub,31,Word中的常用对象,将所选内容在表格中向前移动三个单元格。 If Selection.Information(wdWithInTable) = True Then Selection.Move Unit:=wdCell, Count:=3 End If 以下代码将当前所选内容的文本赋值给变量strTemp,如果该变量是一个段落标记,则删除其最后一个字符。 Dim strTemp as String strTemp = Selection.Text If Right(strTemp, 1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 WordVBA 常用 对象 应用 案例
链接地址:https://www.31doc.com/p-3116404.html