【vb精品源码栏目提醒】:网学会员为需要vb精品源码的朋友们搜集整理了【精品】vb操作word详解 - 其它资料相关资料,希望对各位网友有所帮助!
vb 操作
word 详解 Visual Basic 支持一个对象集合,该集合中的对象直接对应于 Microsoft Word 97 中的元素,并且通过用户界面,用户熟悉这些元素中的绝大多数。
例如,Document 对象代表了一个打开的文档,Bookmark 对象代表了一个文档中的书签,而 Selection 对象则代表了在一个文档窗口窗格中的选定内容。
在 Word 中,每一类元素-文档、表格、段落、书签、域等等-都可以用 Visual Basic 的对象来表示。
要在 Word 中自动执行任务,可以使用这些对象的方法和属性。
关于理解和使用 Microsoft Office 97 对象模型的一般性内容,请参阅本书的第二章“理解对象模型”。
在 Microsoft Office 97 中的对象模型相当丰富,其中包含了大约 180 个对象。
要查看 Word 对象模型的层次关系图,请参阅“帮助”中的“Microsoft Word 对象”。
要获得对某种特定对象的详细描述,可以在此图中单击该对象的名字,或是在“帮助”的索引中对特定对象进行搜索。
怎样显示 Word Visual Basic 帮助 要使用 Word Visual Basic 帮助,必须在安装过程中选择“自定义”的安装方式,并且为Word 选中“Visual Basic 在线帮助”复选框。
否则,安装程序不会安装 Visual Basic 帮助。
如果用户已经安装好了 Word,那么可以再次运行 Setup 程序来安装 Visual Basic 帮助。
要查看 Word Visual Basic 帮助,可以在“Visual Basic 编辑器里的“帮助”菜单中点击“目录和索引”一项。
在“帮助主题”对话框的“目录”一表中,双击“Microsoft Word Visual Basic 参考”,然后再双击“Visual Basic 参考”。
“帮助主题”对话框会重新出现,显示出 Microsoft WordVisual Basic 的目录和索引。
运用 Application 对象 在用户启动一个 Word 时段的同时,也创建了一个 Application 对象。
用户可以使用Application 对象的属性或方法来控制或返回应用程序范围内的特性、控制应用程序窗口的外观或者调整 Word 对象模型的其他方面。
可以使用 Application 属性来返回 Word Application对象。
以下的示例从视图状态切换到打印预览状态。
Application. PrintPreview True Application 对象的一些属性控制着应用程序的外观。
例如,如果 DisplayStatusBar 属性为 True真,那么状态栏是可见的,如果 WindowState 属性值为 wdWindowStateMaximize,那么应用
程序窗口处于最大化状态。
以下的示例设置了屏幕上应用程序窗口的大小。
With Application .WindowState wdWindowStateNormal .Height 450 .Width 600 End With Application 对象的属性也可以访问处于对象层次中较低级的对象,比如 Windows 集合代表了当前所有打开的窗口和 Documents 集合代表了当前所有打开的文档。
用户可以使用属性,有时候也叫做访问者,从对象层次中最高一级的 Application 对象向下访问到较低级的对象Document 对象、Window 对象、 Selection 对象等等。
可以使用以下两个示例之一来打开 MyDoc.doc。
Application. Documents. Open FileName :quotC:DOCSMYDOC.DOCquot Documents. Open FileName :quotC:DOCSMYDOC.DOCquot 因为 Document 属性是共用的,所以 Application 属性是可选的。
共用属性和方法无需Application 对象限定符。
要在“对象浏览器”中浏览共用属性和方法的列表,可以在“类别”栏中单击“lt共用gt”。
共用项就会列在“成员”栏中。
注释 Option 对象包含了控制 Word 共用行为的一些属性。
许多 Option 对象的属性对应 使于 Option 对话框中的各项Tools 菜单。
用 Application 对象的 Option 属性可以返回 Option对象。
以下的示例设置了三个应用程序范围内的选项因为 Option 属性是共用的,所以在本示例中无需 Application 属性。
With Application.Options .AllowDragAndDrop True .ConfirmConversions False .MeasurementUnit wdPoints End With 运用 Document 对象 当用户在 Word 中打开或创建一个文件的同时,也创建了一个 Document 对象。
用户可以使用 Document 对象或 Documents 集合的属性或方法来打开、创建、保存、激活或者关闭文件。
返回 Document 对象 用户可以使用语法 Documents index来返回作为一个 Document 对象的任何打开的文 在这里 index 是该文档的名字或索引号。
档, 变量 myDoc 包含一个 Document 在以下的示例中,对象,该对象代表名为“Report.doc”的打开的文档。
Set myDoc Documents quotReport.docquot 索引号代表了文档在 Documents 集合中的位置。
在以下的示例中,变量 myDoc 包含了一个 Document 对象,该对象代表 Documents 集合中的第一个文档。
Set myDoc Documents1 注释 因为当用户添加或关闭多个文档时,某个特定文档的索引号会发生改变,所以最好使用文档的名字来对 Documents 集合中的 Document 对象进行索引。
除了通过文档的名字或索引号来引用文档,还可以使用 ActiveDocument 属性来返回一个引用活动文档当前着眼的文档的 Document 对象。
以下的示例显示产活动文档的名字;如果没有打开的文档,则该示例显示一条消息。
If Documents. Count gt 1 Then MsgBox ActiveDocument. Name Else MsgBox quotNo documents are openquot End If 打开文档 要打开一个已经存在的文档,可以使用 Open 方法。
Open 方法应用于通过 Document 属性返回的 Documents 集合。
以下的示例打开了文件 Test.doc从当前文件夹并且启动了更改跟踪。
Set myDoc Documents. Open FileName :quotTEST.DOCquot myDoc. TrackRevisions True 注意到在上例中 Open 方法的返回值是一个 Document 对象,该对象表示刚被打开的文档。
在此示例中的文件名不包含路径;因此,是假定了该文件在当前的文件夹中。
但这会导致出现一个运行时错误,因为一旦用户创建了与当前文件夹不同的文件夹,Visual Basic 就再也找不到该文件了。
但是,用户可以通过指明完整的路径,就如同下表所示的那样,来确保打开正确的文件。
操作系统 FileName 参数 Windows FileName :quotC:DocumentsTemporary File.docquot Macintosh FileName :quotHard Drive:Documents:Temporary Filequot 如果用户的宏只用于一种文件系统,那么可以在 FileName 参数中指定路径分隔符“”或者“:”,就如同上表所示的那样。
以下示例显示了与文件
系统无关的代码,可以用来打开Sales.doc,并且假定 Sales.doc 已经保存在 Word 的程序文件夹中。
programPath Options. DefaultFilePath wdProgramPath Documents. Open FileName :programPath amp Application. PathSeparator amp quotSALES.DOCquot PathSeparator 属性返回当前文件系统例如,“”用于 MS-DOS/Windows 的文件分配表,或者“:”用于 Macintosh的正确的文件分隔符。
DefaultFilePath 属性返回文件的位置,比如文档所在文件夹的路径、程序文件夹或者当前文件夹。
如果所指定的文件名既没有在当前文件夹如果没有指定路径出现也没有在指定的文件夹如果指定了路径中出现,那么就会发生错误。
以下的示例使用 FileSearch 对象的属性和方法来判断名为“Test.doc”的文件是否存在于用户的默认文档文件夹中。
如果找到了该文件FoundFiles. Count 1,那么就打开它;否则,显示一条消息。
defaultDir Options. DefaultFilePath wdDocumentsPath With Application. FileSearch .FileName quotTest.docquot .LookIn defaultDir .Execute If .FoundFiles. Count 1 Then Documents. Open FileName :defaultDir amp Application. PathSeparator amp quotTEST.DOCquot Else MsgBox quotTest.doc file was not foundquot End If End With 也可以允许用户选择要打开的文件,而不是定死 Open 方法的 FileName 参数值。
如同以下示例所示的那样,可以使用带有 wdDialogFileOpen 常量的 Dialogs 属性来返回一个Dialog 对象, Show 方法可以显示并且执行在“打 该对象表示“打开”对话框在“文件”菜单中。
开”对话框中完成的动作。
Dialogs wdDialogFileOpen. Show Display 方法只是用来显示特定的对话框而不作任何更多的操作。
以下的示例检查Display 方法的返回值。
如果用户单击“确定”来关闭对话框,返回值-1 并且打开所选择的文件,该文件的名字保存在变量 fSelected 中。
Set dlg Dialogs wdDialogFileOpen aButton dlg. Display fSelected dlg. Name If aButton -1 Then Documents. Open FileName :fSelected End If 要对如何显示 Word 对话框作进一步了解,请参阅“帮助”中的“显示内置 Word 对话框”一节的内容。
要判断某个特殊的文档是否打开,可以使用一条 For Each…Next 语句来对 Documents集合进行列举。
如果名为“Sample.doc”的文档已经被打开了,以下的示例就激活它;如果它尚未被打开,则该示例会打开它。
docFound True For Each aDoc In Documents If InStr 1 aDoc. Name quotsample.docquot 1 Then aDoc. Activate Exit For Else docFound False End If Next aDoc If docFound False Then Documents. Open _ FileName :quotC:DocumentsSample.docquot 可以使用 Count 属性来确定当前打开文档的数目。
Count 属性应用于 Documents 集合,可以使用 Document 属性返回该集合。
如果没有已打开的文档, 以下的示例会显示一条消息。
If Documents. Count 0 Then MsgBox quotNo documents are openquot 创建和保存文档 要创建一个新文档,可以对 Documents 集合应用 Add 方法。
以下的示例创建了一个新文档。
Documents. Add Add 方法返回了仅作为一个 Document 对象而创建的文档。
当用户添加一个文档时,可以设置 Add 方法的返回值是一个对象变量,以便用户可以在自己的代码中引用该新文档。
以下的示例创建了一个新文档,并且设置它的上边距为 1.25 英寸。
Dim myDoc As Document Set myDoc Documents. Add myDoc. PageSetup. TopMargin InchesToPoints1.25 第一次保存新文档时,可以随 Document 对象使用 SaveAs 方法。
以下的示例将名为“Temp.doc”的活动文档保存在当前文件夹中。
ActiveDocument. SaveAs FileName :quotTemp.docquot 在文档被保存之后,用户可以使用它的文档名来调整 Document 对象。
以下的示例创建了 一 个 新 文 档 并 且 立 刻 把 它 保 存 为 “1996 Sales.doc” 。
然 后 , 该 示 例 使 用 新 名 字 来 作Documents 集合中的该文档的索引,并且向该文档添加一张表格。
Documents. Add.SaveAs FileName :quot1996 Sales.docquot Documents quot1996 Sales.docquot.Tables.Add _ Range :Selection. Range NumRows :2 NumColumns :4 要保存对一个已经存在的文档所进行的更改,可以随同 Document 对象使用 Save 方法。
以下的指令保存了名为“Sales.doc”的文档。
Documents quotSales.docquot. Save 如果用户随同一个尚未保存的文档或模板使用 Save 方法,将会显示“另存为”对话框来提示用户为该文件取名。
要保存所有打开的文档,可以对 Documents 集合应用 Save 方法。
以下的示例保存了所有打开的
文档,但没有提示用户为文件取名。
Documents. Save NoPrompt :True 激活一个
文档 要使另一个文档成为活动文档,可以对 Document 对象应用 Activate 方法。
以下的示例激活了打开的文档MyDocument.doc。
Documents quotMyDocument.docquot. Activate 以下的示例打开了两个文档,然后激活其中的第一个文档Sample.doc。
Set Doc1 Documents. Open FileName :quotC:DocumentsSample.docquot Set Doc2 Documents.Open FileName :quotC:DocumentsOther.docquot Doc1. Activate 打印一个文档 要打印一个文档,可以对 Document 对象应用 PrintOut 方法,如以下示例所示。
ActiveDocument. PrintOut 要通过程序来设置那些也可以在“打印”对话框在“文件”菜单中里进行设置的打印选项,可以使用 PrintOut 方法的参数来实现。
用户可以使用 Options 对象的属性来设置打印选项,这些选项也可以在“选项”对话框在“工具”菜单中“打印”一表里进行设置。
以下示例设置活动文档打印隐藏的文字,并且只打印出前三页。
Options. PrintHiddenText True ActiveDocument. PrintOut Range :wdPrintFromTo From :quot1quot To :quot3quot 关闭文档 要关闭一个文档,可以对 Document 对象应用 Close 方法。
以下的示例关闭了名为“Sales.doc”的文档。
Documents quotSales.docquot. Close 如果对文档进行过修改,Word 会显示出一条消息来询问用户是否要保存所进行的修改。
用户可以随 SaveChanges 参数使用 wdDoNotSaveChanges 或 wdSaveChanges 常量来使该提示不再出现。
以下的示例保存并且关闭了 Sales.doc。
Documents quotSales.docquot. Close SaveChanges :wdSaveChanges 要关闭所有已打开的文档,可以对 Documents 集合应用 Close 方法。
以下的示例没有保存修改就关闭了所有的文档。
Documents. Close SaveChanges :wdDoNotSaveChanges 访问文档中的对象 用户可以从 Document 对象来访问返回对象的一系列属性和方法。
要查看在 Document对 象 中 所 能 使 用 的 对 象 的 层 次 关 系 图 , 可 以 参 阅 “ 帮 助 ” 中 的 “Microsoft Word 对 象Documents”。
例如,Table 属性,它能够返回一个 Table 对象的集合,可以在 Document 对象中使用。
随着一个集合对象使用的 Count 属性能够判断在该集合中所包含的项数。
以下的示例显示一条消息来指出在活动文档中有多少表格。
MsgBox ActiveDocument. Tables. Count amp quot tables in this documentquot 使用 Tableindex可以返回一个单张表格对象,这里的 index 是索引号。
在以下的示例中,myTable 代表“Sales.doc”文档里的第一张表格。
Set myTable Documents quotSales.docquot. Tables1 关于返回一个特殊对象的信息可以从“帮助”中的对象主题本身 例如,“Table 对象”和相应的集合对象主题例如,“Table 集合对象”中获得。
向文档添加对象 可以使用随着能在 Document 对象中访问的集合对象的 Add 方法来向文档添加诸如脚注、备注或表格这样的对象。
例如,以下命令在 myRange 变量myRange 是一个包含了一个Range 对象的对象变量所指定的位置上添加了一张 3x3 的表格。
ActiveDocument. Tables. Add Range :myRange NumRows :3 NumColumns :3 以下的示例在 myRange 变量所指定的位置上添加了一个脚注。
ActiveDocument. Footnotes. Add Range :myRange Text :quotThe Willow TreequotA 要获得支持 Add 方法的集合对象
列表,请参阅“帮助”中的“Add 方法”。
运用 Range 对象 当使用 Visual Basic 时一个常见的任务就是在文档中指定一块区域,然后对它进行处理,比如插入文字或应用格式等。
例如,用户可能想编写一个宏,来对文档中某个部分里的某个单词或短语进行定位。
那就可以使用一个 Range 对象来表示想在其中
搜索特定单词或短语的部分文档。
在确定 Range 对象后,用户能够应用该对象的方法和属性来修改相应范围中的内容。
一个 Range 对象代表了文档中的一块连续的区域。
每一个 Range 对象都由一个起始字符位置和一个终止字符位置来定义。
与用户在文档中使用书签的方法类似,可以在 VisualBasic 中使用 Range 对象来识别一个文档的特定部分。
一个 Range 对象既可以和插入点一样小,也可以和整个文档一样大。
但是,与书签不同,Range 对象仅仅在定义它的过程正在运行时才存在。
Range 对象同选定内容相互独立;也就是说,可以定义和修改范围而不会改变选定内容。
用户也可以在文档中定义多个范围,而此时每个文档窗格中仅有一个选定内容。
Start、End 和 StoryType 属性唯一地确定了一个 Range 对象。
Start 和 End 属性分别返回或者设置 Range 对象的起始和结束字符的位置。
每个文档构成部分起始处的字符位置是 0zero,而第一个字符之后的位置是 1,依此类推。
StoryType 属性的 WdStoryType 常量可以表示十一种不同的文档构成部分类型。
例如,如果在注脚区域中有一个 Range 对象,那么StoryType 属性返回 wdFootnotesStory。
要对文档构成部分作进一步了解,请参阅本节后面的“运用文档构成部分”一节的有关内容。
使用 Range 对象来代替 Selection 对象 宏录制器会经常创建一个使用 Selection 属性来控制操纵 Selection 对象的宏。
但是,用户通常可以用一个或几个 Range 对象来以很少的命令完成相同的任务。
以下的示例是用宏录制器创建的。
该宏对文档中的前两个单词进行加粗。
Selection. HomeKey Unit :wdStory Selection. MoveRight Unit :wdWord Count:2 Extend :wdExtend Selection. Font.Bold wdToggle 以下的示例没有使用 Selection 对象而完成了相同的任务。
ActiveDocument. Range Start:0 End :ActiveDocument. Words2. End .Bold True 以下的示例对文档中的前两个单词进行加粗,然后插入一个新的段落。
Selection. HomeKey Unit :wdStory Selection. MoveRight Unit :wdWord Count :2 Extend :wdExtend Selection. Font.Bold wdToggle Selection. MoveRight Unit :wdCharacter Count:1 Selection. TypeParagraph 以下的示例没有使用 Selection 对象就完成了上述示例中的同样任务。
Set myRange ActiveDocument. RangeStart:0 End :ActiveDocument. Words2. End myRange. Bold True myRange. InsertParagraphAfter 前面的两个示例改变了活动文档中的格式但没有改变选定内容。
在大多数的场合下,Range 对象比 Selection 对象更可取,原因如下: 用户可以定义和使用多个 Range 对象, 而在每个文档窗口中只能有一个 Selection 对象。
控制管理 Range 对象不会改变所选择的文字内容。
控制管理 Range 对象比运用 Selection 对象速度要快。
使用 Range 方法返回 Range 对象 可以使用 Range 方法在特定文档中创建一个 Range 对象。
Range 方法可以从 Document对象使用返回一个 Range 对象,该对象定位于主文档构成部分中,有给定的起始点和结束点。
以下示例创建了一个 Range 对象,并且赋给 myRange 变量。
Set myRange ActiveDocument. Range Start :0 End :10 在上述示例中,myRange 表示活动文档中的前十个字符。
当对保存在 myRange 变量中的 Range 对象应用一种属性或方法时,就可以看到已经创建的 Range 对象。
以下的示例对活动文档中的前十个字符进行加粗。
Set myRange ActiveDocument. RangeStart :0 End :10 myRange. Bold True 当用户需要对一个 Range 对象进行多次引用时,可以使用 Set 语句来设置一个等价于Range 对象的变量。
但是,如果用户需要在一个对象上执行一次操作,那么就没有必要将对象保存到变量中。
用户可以使用一条确定范围并且改变 Bold 属性的命令来取得同样的结果;如以下示例所示。
ActiveDocument. RangeStart :0 End :10. Bold True 和书签类似,一个范围能够在文档中横跨一组字符,也可以标记其中的一个位置。
在以下的示例中,Range 对象的起始和终止点相同,并且该范围内不包含任何文字。
该示例在活动文档的起始处插入文字。
ActiveDocument. RangeStart :0 End :0. InsertBefore Text :quotHello quot 用户可以通过使用如上述示例所示的字符位置数字, 或者随同 Selection 对象、Bookmark对象或 Range 对象使用 Start 属性和 End 属性,来定义一个范围的起始和终止位置。
以下示例创建了一个 Range 对象,来表示活动文档中的第三和第四个句子。
Set myDoc ActiveDocument Set myRange myDoc. Range Start :myDoc. Sente.