分享成果,随喜正能量】在善意的“双向奔赴”中,每个普通人都如星辰,微小但释放着自己的光芒,交织成灿烂的星河。人生这条路很长,未来如星辰大海般璀璨,不必踟躇与过去的半亩方塘。那些所谓的遗憾,可能是一种成长那些曾受过的伤,终会化作照亮前路的光。

《VBA之Word应用》,是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实例让大家感受到Word VBA 的妙处。本套教程共三册十六章,今日内容第七章 “Word中的Selection对象”,第1节:显示文档所选区域字符,并添加文档作者

第一节 Selection 对象的属性(一)

大家好,我们在这章的引言部分明确了什么是Selection对象,Selection对象表示窗口或窗格中的当前所选内容。选定内容表示文档中的选定(或突出显示)区域,或者代表插入点(如果未选择文档中的任何内容)。这节的内容是Selection对象的属性,我们先讲解Characters 属性、End 属性、Start 属性。

1 Selection.Characters属性

这个属性返回一个表示文档、区域或所选内容中的字符的 Characters集合,为只读属性。

语法:expression.Characters

其中expression为一个代表Selection对象的变量。

2 Selection.End属性

这个属性返回或设置所选内容的结束字符位置。

语法:expression.End

其中expression为一个代表Selection对象的变量。

  • 如果此属性设置为一个值小于Start属性, Start属性设置为相同的值 (即,Start和End 属性相等)。
  • Selection 对象有一个起始位置和结束位置。 结束位置是距离内容开始最远的点。此属性返回结束字符相对于开始部分的位置。文档主要文字部分 (wdMainTextStory) 的起始字符位置为0。 通过设置该属性可以更改选定内容的大小。

3 Selection.Start属性

此属性返回或设置选定内容的起始字符位置。

语法:expression.Start

其中expression为一个代表Selection对象的变量。

  • Selection 对象具有起始字符位置和结束字符位置。 内容的开头最近的字符位置引用的位置为起始位置。如果此属性设置为一个值大于 End 属性, End 属性设置为Star属性中的值相同。
  • 该属性返回起始字符相对于文档开头部分的位置。文本主体部分 (wdMainTextStory) 的起始字符位置为0(零)。 通过设置该属性可以更改选定内容、区域或书签的大小。

4 实例:显示所选区域长度及字符,并添加文档作者

下面我们通过一个实例来显示所选择区域的长度及某个字符,并在所选择区域的换行符之后添加文档的作者。我们看下面的代码:

Sub mynz()

'选择第三个自然段

Set myRange = ActiveDocument.Paragraphs(3).Range

myRange.Select

'显示所选内容的第3个字符。如果没有选定任何内容,则显示插入点后的第一个字符。

myChar = Selection.Characters(3).Text

MsgBox "所选择的第三个字符是:" & myChar

'通过起始和结束字符位置确定选定内容的长度

myL = Selection.End - Selection.Start

MsgBox "所选择的长度是:" & myL

'检索选定内容的结束位置。该值用于创建一个区域,以便在选定内容之后插入一个字段。

t = Selection.End

Set myRange = ActiveDocument.Range(Start:=t, End:=t)

ActiveDocument.Fields.Add Range:=myRange, Type:=wdFieldAuthor

End Sub

代码截图:

代码解读:

1)Set myRange = ActiveDocument.Paragraphs(3).Range

myRange.Select

以上代码选择当前文档的第三个自然段。

2)myChar = Selection.Characters(3).Text

MsgBox "所选择的第三个字符是:" & myChar

以上代码显示所选内容的第3个字符。 如果没有选定任何内容,则显示插入点后的第一个字符。

4) myL = Selection.End - Selection.Start

MsgBox "所选择的长度是:" & myL

以上代码显示所选择的长度,注意是包含换行符的

5) t = Selection.End

Set myRange = ActiveDocument.Range(Start:=t, End:=t)

ActiveDocument.Fields.Add Range:=myRange, Type:=wdFieldAuthor

以上代码检索选定内容的结束位置。该值用于创建一个区域,以便在选定内容之后插入一个字段。注意此时的myRange不同于前面的myRange了。

代码的运行效果:

今日内容回向:

1 Word中Selection对象的Characters 属性、End 属性、Start 属性的意义是什么?

2 如何利用VBA显示所选择区域的长度及某个字符,并在所选择区域的换行符之后添加文档的作者?

本讲内容参考程序文件:Doc 007文档.docm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

分享成果,随喜正能量】每错的一道题,每丢的一分,都是为了遇见对的人;而你们每对的一道题,每得的一分,都是为了遇见更好的自己。世间因少年挺身向前,而更加瑰丽。。