方法(可以从Document对象使用)返回一个Range对象,该对象定位于主文档构成部分中,有给定的起始点和结束点。以下示例创建了一个Range对象,并且赋给myRange变量。
Set myRange = ActiveDocument. Range (Start :=0, End :=10) 在上述示例中,myRange表示活动文档中的前十个字符。当对保存在myRange变量中的Range对象应用一种属性或方法时,就可以看到已经创建的Range对象。以下的示例对活动文档中的前十个字符进行加粗。
Set myRange = ActiveDocument. Range(Start :=0, End :=10) myRange. Bold = True
当用户需要对一个Range对象进行多次引用时,可以使用Set语句来设置一个等价于Range对象的变量。但是,如果用户需要在一个对象上执行一次操作,那么就没有必要将对象保存到变量中。用户可以使用一条确定范围并且改变Bold属性的命令来取得同样的结果;如以下示例所示。
ActiveDocument. Range(Start :=0, End :=10). Bold = True 和书签类似,一个范围能够在文档中横跨一组字符,也可以标记其中的一个位置。在以下的示例中,Range对象的起始和终止点相同,并且该范围内不包含任何文字。该示例在活动文档的起始处插入文字。
ActiveDocument. Range(Start :=0, End :=0). InsertBefore Text :=\
用户可以通过使用如上述示例所示的字符位置数字,或者随同Selection对象、Bookmark对象或Range对象使用Start属性和End属性,来定义一个范围的起始和终止位置。以下示例创建了一个Range对象,来表示活动文档中的第三和第四个句子。
Set myDoc = ActiveDocument
Set myRange = myDoc. Range (Start :=myDoc. Sentences(3). Start, _
End :=myDoc. Sentences (4). End)
技巧 Range对象在文档中的表示不可见。但是,用户可以使用Select方法来选定一个Range对象,以保证Range对象表示正确的文字范围。在以下示例中的Range对象表示活动文档中的前三个段落。在该宏运行完毕之后,选定内容是指包含在aRange变量中的文字范围。
Set aRange = ActiveDocument.Range (Start :=0, _ End :=ActiveDocument. Paragraphs (3). Range. End) aRange. Select
使用Range属性来返回一个Range对象
在许多对象都可以使用Range属性-例如,Paragraph对象、Bookmark对象、Endnote对象以及Cell对象-Range属性用来返回一个Range对象。以下的示例返回了一个Range对象,该对象表示活动文档的第一段。
Set myRange = ActiveDocument.Paragraphs (1). Range
在创建了对Range对象的引用之后,用户可以使用它的任何属性或方法来修改该范围。以下的示例复制了活动文档中的第一段。
Set myRange = ActiveDocument. Paragraphs (1). Range myRange. Copy
以下的示例复制了活动文档中表格一的第一行。 ActiveDocument. Tables(1). Rows(1). Range. Copy 以下的示例显示了活动文档中由第一个书签标记的文字。Range属性可以在Bookmark对象中使用。
MsgBox ActiveDocument. Bookmarks (1). Range. Text 如果用户需要对同一个Range对象应用多种属性或方法,那么可以使用With?End With语句。以下的示例为活动文档的第一段设定了文字的格式。
Set myRange = ActiveDocument. Paragraphs (1). Range With myRange .Bold = True
.ParagraphFormat. Alignment = wdAlignParagraphCenter .Font. Name = \End With
要获得关于返回Range对象的其他示例,请参阅“帮助”中的“Range属性”。
修改文档的一部分
Visual Basic包含了一些对象,可以使用它们来修改以下类型
的文档元素:字符、单词、句子、段落以及节。下面的表格包含了对应于这些文档元素的属性和属性所返回的对象。
表 达 式 Word (index) Characters (index) Sentences (index) Paragraphs (index) Sections (index) 返 回 的 对 象 Range对象 Range对象 Range对象 Paragraph对象 Section对象 当用户不带index来使用这些属性时,就返回一个同名的集合-例如,Paragraphs属性返回Paragraphs集合。但是,如果用户使用index来确定在某个集合中的一项,就返回上述表格第二列中的对象-例如,Words(1)返回一个Range对象。用户可以使用任何范围属性或方法来修改Range对象,如以下示例所示,该示例将选定内容中的第一个单词复制到剪贴板中。
Selection. Words (1). Copy
在Paragraphs集合以及Sections集合中的集合项分别是Paragraph对象和Section对象,而不是Range对象。但是,在Paragraph对象和Section对象中都可以使用Range属性(它返回一个Range对象)。以下的示例将获得文档中的第一段复制到剪贴板中。
ActiveDocument. Paragraphs(1). Range. Copy
上述表格中所有的文档元素属性都可以在Document对象、Selection对象以及Range对象中使用,如以下三个示例所示。
本例设置活动文档中第一个单词的大小写。 ActiveDocument. Words(1). Case = wdUpperCase 本例设置选中的第一节的下边距为0.5英寸。 Selection.Sections(1). InchesToPoints(0.5)
本例设置活动文档中的文字为两倍行距(Content属性返回一个Range对象,该对象表示主文档构成部分)。
ActiveDocument. Content. ParagraphFormat. Space2 修改一组文档元素
要修改由一组文本元素(字符、单词、句子、段落或节)构成的范围,可以创建一个包含文档元素的Range对象。随同Range对象使用Start和End属性,用户可以新建一个Range对象,该对象引用了一组文档元素。以下的示例创建了一个Range对象(myRange),该对象引用了活动文档中的前三个单词,然后将这些单词的字体改为Arial。
Set Doc = ActiveDocument
Set myRange = Doc.Range (Start :=Doc. Words(1). Start, End :=Doc. Words(3). End)
myRange. Font. Name = \
以下的示例创建了一个Range对象,该对象起始于第二段的开头,到第四段之后结束。
PageSetup.
BottomMargin
=