前面几节已经多次用到了Collapse方法,使用该方法对字符序列内容进行折叠。这里的折叠是什么意思呢?我们对一个字符序列插入换行符或特殊符号,默认时会用插入的字符替换字符序列中的文本,替换后实际上就只有一个插入点了。如果保留字符序列,那么就有字符序列前和字符序列后两个插入点。选择哪个点插入呢?这里就要用到Collapse方法,通过设置Direction参数确定将文本内容折叠到起点处还是终点处,从而确定插入的点。
使用Range对象的Expand方法可以对指定文本进行扩展。该方法的语法格式为:
rng.Expand Unit
其中,rng是Range对象,Unit参数是对rng进行展开的度量单位,可以是wdUnits 常量之一,即wdCharacter, wdWord, wdSentence, wdParagraph, wdSection, wdStory, wdCell, wdColumn, wdRow或wdTable。
这里,rng可以是几个连续的字符或单词等,用Expand可以将它扩展到它所在的句子、段落或节等。
下面对于文档doc中第26到34个字符定义的字符序列,用Expand方法将它扩展到它所在的段落。
Sub Test()
'折叠
Dim doc As Document
Set doc = Documents.Open("D:\test2.docx")
Dim rng As Range
Set rng = doc.Range(Start:=26, End:=34)
rng.Font.Size = 20
rng.Collapse Direction:=wdCollapseEnd
rng.InsertSymbol characternumber:=87, Font:="Symbol"
End Sub
设置后,选择该字符序列,发现整个段落被选中了,说明原字符序列已经扩展到了整个段落。
图3-27 对指定字符序列末端进行扩展
使用Expand方法可以对指定文本两端进行扩展,使用MoveStart方法和MoveEnd方法则可以对指定文本的前端和后端进行扩展。
下面对于文档doc中第26到34个字符定义的字符序列,用MoveEnd方法对字符序列末端进行扩展,扩展的长度为一个句子,即它当前所在的句子。
用MoveStart方法对字符序列首端方向进行扩展。注意,此时需要设置该方法的Count参数的值为负值,为负值表示向后扩展,为正值表示向前扩展。下面用MoveStart方法对字符序列向后扩展,单位为1个句子。
Sub Test3()
'扩展 MoveStart, MoveEnd
Dim doc As Document
Set doc = Documents.Open("D:\test2.docx")
Dim rng As Range
Set rng = doc.Range(Start:=126, End:=134)
rng.Font.Size = 20
'rng.MoveStart Unit:=wdSentence, Count:=-2
rng.MoveEnd Unit:=wdSentence, Count:=2
rng.Select
End Sub
选择当前字符序列,效果如图3-28所示。
图3-28 在1个句子范围内向后扩展