vb操作word详解VisualBasic支持一个对象集合,该集合中的对象直接对应于MicrosoftWord97中的元素,并且通过用户界面,用户熟悉这些元素中的绝大多数。例如,Document对象代表了一个打开的文档,Bookmark对象代表了一个文档中的书签,而Selection对象则代表了在一个文档窗口窗格中的选定内容。在Word中,每一类元素-文档、表格、段落、书签、域等等-都可以用VisualBasic的对象来表示。要在Word中自动执行任务,可以使用这些对象的方法和属性。关于理解和使用MicrosoftOffice97对象模型的一般性内容,请参阅本书的第二章“理解对象模型”。在MicrosoftOffice97中的对象模型相当丰富,其中包含了大约180个对象。要查看Word对象模型的层次关系图,请参阅“帮助”中的“MicrosoftWord对象”。要获得对某种特定对象的详细描述,可以在此图中单击该对象的名字,或是在“帮助”的索引中对特定对象进行搜索。怎样显示WordVisualBasic帮助要使用WordVisualBasic帮助,必须在安装过程中选择“自定义”的安装方式,并且为Word选中“VisualBasic在线帮助”复选框。否则,安装程序不会安装VisualBasic帮助。如果用户已经安装好了Word,那么可以再次运行Setup程序来安装VisualBasic帮助。要查看WordVisualBasic帮助,可以在“VisualBasic编辑器里的“帮助”菜单中点击“目录和索引”一项。在“帮助主题”对话框的“目录”一表中,双击“MicrosoftWordVisualBasic参考”,然后再双击“VisualBasic参考”。“帮助主题”对话框会重新出现,显示出MicrosoftWordVisualBasic的目录和索引。运用Application对象在用户启动一个Word时段的同时,也创建了一个Application对象。用户可以使用Application对象的属性或方法来控制或返回应用程序范围内的特性、控制应用程序窗口的外观或者调整Word对象模型的其他方面。可以使用Application属性来返回WordApplication对象。以下的示例从视图状态切换到打印预览状态。Application.PrintPreview=TrueApplication对象的一些属性控制着应用程序的外观。例如,如果DisplayStatusBar属性为True(真),那么状态栏是可见的,如果WindowState属性值为wdWindowStateMaximize,那么应用程序窗口处于最大化状态。以下的示例设置了屏幕上应用程序窗口的大小。WithApplication.WindowState=wdWindowStateNormal.Height=450.Width=600EndWithApplication对象的属性也可以访问处于对象层次中较低级的对象,比如Windows集合(代表了当前所有打开的窗口)和Documents集合(代表了当前所有打开的文档)。用户可以使用属性,有时候也叫做访问者,从对象层次中最高一级的Application对象向下访问到较低级的对象(Document对象、Window对象、Selection对象等等)。可以使用以下两个示例之一来打开MyDoc.doc。Application.Documents.OpenFileName:=C:\DOCS\MYDOC.DOCDocuments.OpenFileName:=C:\DOCS\MYDOC.DOC因为Document属性是共用的,所以Application属性是可选的。共用属性和方法无需Application对象限定符。要在“对象浏览器”中浏览共用属性和方法的列表,可以在“类别”栏中单击“共用”。共用项就会列在“成员”栏中。注释Option对象包含了控制Word共用行为的一些属性。许多Option对象的属性对应于Option对话框中的各项(Tools菜单)。使用Application对象的Option属性可以返回Option对象。以下的示例设置了三个应用程序范围内的选项(因为Option属性是共用的,所以在本示例中无需Application属性)。WithApplication.Options.AllowDragAndDrop=True.ConfirmConversions=False.MeasurementUnit=wdPointsEndWith运用Document对象当用户在Word中打开或创建一个文件的同时,也创建了一个Document对象。用户可以使用Document对象或Documents集合的属性或方法来打开、创建、保存、激活或者关闭文件。返回Document对象用户可以使用语法Documents(index)来返回作为一个Document对象的任何打开的文档,在这里index是该文档的名字或索引号。在以下的示例中,变量myDoc包含一个Document对象,该对象代表名为“Report.doc”的打开的文档。SetmyDoc=Documents(Report.doc)索引号代表了文档在Documents集合中的位置。在以下的示例中,变量myDoc包含了一个Document对象,该对象代表Documents集合中的第一个文档。SetmyDoc=Documents(1)注释因为当用户添加或关闭多个文档时,某个特定文档的索引号会发生改变,所以最好使用文档的名字来对Documents集合中的Document对象进行索引。除了通过文档的名字或索引号来引用文档,还可以使用ActiveDocument属性来返回一个引用活动文档(当前着眼的文档)的Document对象。以下的示例显示产活动文档的名字;如果没有打开的文档,则该示例显示一条消息。IfDocuments.Count=1ThenMsgBoxActiveDocument.NameElseMsgBoxNodocumentsareopenEndIf打开文档要打开一个已经存在的文档,可以使用Open方法。Open方法应用于通过Document属性返回的Documents集合。以下的示例打开了文件Test.doc(从当前文件夹)并且启动了更改跟踪。SetmyDoc=Documents.Open(FileName:=TEST.DOC)myDoc.TrackRevisions=True注意到在上例中Open方法的返回值是一个Document对象,该对象表示刚被打开的文档。在此示例中的文件名不包含路径;因此,是假定了该文件在当前的文件夹中。但这会导致出现一个运行时错误,因为一旦用户创建了与当前文件夹不同的文件夹,VisualBasic就再也找不到该文件了。但是,用户可以通过指明完整的路径,就如同下表所示的那样,来确保打开正确的文件。操作系统FileName参数WindowsFileName:=C:\Documents\TemporaryFile.docMacintoshFileName:=HardDrive:Documents:TemporaryFile如果用户的宏只用于一种文件系统,那么可以在FileName参数中指定路径分隔符(“\”或者“:”),就如同上表所示的那样。以下示例显示了与文件系统无关的代码,可以用来打开Sales.doc,并且假定Sales.doc已经保存在Word的程序文件夹中。programPath=Options.DefaultFilePath(wdProgramPath)Documents.OpenFileName:=programPath&Application.PathSeparator&SALES.DOCPathSeparator属性返回当前文件系统(例如,“\”用于MS-DOS/Windows的文件分配表,或者“:”用于Macintosh)的正确的文件分隔符。DefaultFilePath属性返回文件的位置,比如文档所在文件夹的路径、程序文件夹或者当前文件夹。如果所指定的文件名既没有在当前文件夹(如果没有指定路径)出现也没有在指定的文件夹(如果指定了路径)中出现,那么就会发生错误。以下的示例使用FileSearch对象的属性和方法来判断名为“Test.doc”的文件是否存在于用户的默认文档文件夹中。如果找到了该文件(FoundFiles.Count=1),那么就打开它;否则,显示一条消息。defaultDir=Options.DefaultFilePath(wdDocumentsPath)WithApplication.FileSearch.FileName=Test.doc.LookIn=defaultDir.ExecuteIf.FoundFiles.Count=1ThenDocuments.OpenFileName:=defaultDir&Application.PathSeparator&TEST.DOCElseMsgBoxTest.docfilewasnotfoundEndIfEndWith也可以允许用户选择要打开的文件,而不是定死Open方法的FileName参数值。如同以下示例所示的那样,可以使用带有wdDialogFileOpen常量的Dialogs属性来返回一个Dialog对象,该对象表示“打开”对话框(在“文件”菜单中)。Show方法可以显示并且执行在“打开”对话框中完成的动作。Dialogs(wdDialogFileOpen).ShowDisplay方法只是用来显示特定的对话框而不作任何更多的操作。以下的示例检查Display方法的返回值。如果用户单击“确定”来关闭对话框,返回值-1并且打开所选择的文件,该文件的名字保存在变量fSelected中。Setdlg=Dialogs(wdDialogFileOpen)aButton=dlg.DisplayfSelected=dlg.NameIfaButton=-1ThenDocuments.OpenFileName:=fSelectedEndIf要对如何显示Word对话框作进一步了解,请参阅“帮助”中的“显示内置Word对话框”一节的内容。要判断某个特殊的文档是否打开,可以使用一条ForEach…Next语句来对Documents集合进行列举。如果名为“Sample.doc”的文档已经被打开了,以下的示例就激活它;如果它尚未被打开,则该示例会打开它。docFound=TrueForEachaDocInDocumentsIfInStr(1,aDoc.Name,sample.doc,1)ThenaDoc.ActivateExitForElsedocFound=FalseEndIfNextaDocIfdocFound=FalseThenDocuments.Open_FileName:=C:\Documents\Sample.doc可以使用Count属性来确定当前打开文档的数目。Count属性应用于Documents集合,可以使用Document属性返回该集合。如果没有已打开的文档,以下的示例会显示一条消息。IfDocuments.Count=0ThenMsgBoxNodocumentsareopen创建和保存文档要创建一个新文档,可以对Documents集合应用Add方法。以下的示例创建了一个新文档。Documents.AddAdd方法返回了仅作为一个Document对象而创建的文档。当用户添加一个文档时,可以设置Add方法的返回值是一个对象变量,以便用户可以在自己的代码中引用该新文档。以下的示例创建了一个新文档,并且设置它的上边距为1.25英寸。DimmyDocAsDocumentSetmyDoc=Documents.AddmyDoc.PageSetup.TopMargin=InchesToPoints(1.25)第一次保存新文档时,可以随Document对象使用SaveAs方法。以下的示例将名为“T