VBA之Word应用:在Word中,什么是Range对象

《VBA之Word应用》(版权10178982),是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕"面向对象编程"讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实例让大家感受到Word VBA 的妙处。

这套教程是专门针对WORD VBA 的教程,是VBA中的稀缺资源,我给这套教程分归为中级教程,希望大家在VBA入门后再学习这套教程,这样会更加深入的理解面向对象编程的意义。

本套教程共三册十六章,今日内容为VBA之Word应用第五章第一节 在Word中,什么是Range对象

分享成果,随喜正能量】万般皆苦,唯有自渡。没人扶你的时候,要自己站直,没人帮你的时候,要自己努力。相信自己,只要你足够勇敢,没有熬不过的艰难。人生三万天,过一天就少一天。前半生是奋斗,后半生是享受。

第五章第一节 在Word中,什么是Range对象

我们知道Range的含义是一个范围,在Excel中这个范围是单元格区域,可以是一个单元格,也可以是多个单元格。在Word中Range同样表示一个范围,这个范围可以是文档的任何部分,大如包括整个文档,也可以小如一个字符。概况地讲:在Word中,Range对象表示文档中的一个连续区域。每个 Range 对象由一个起始字符位置和一个终止字符位置定义。

1 Range对象与Bookmark对象

在第二章中,我给大家首先讲解了word中的书签,以便让大家能尽快地理解VBA在Word中的应用。Range对象与Bookmark书签对象在文档中的使用方法类似,Range 对象同样可以用来标识文档的特定部分。但与书签不同的是,Range对象只在定义该对象的过程运行时才存在。 Range对象不受选定内容影响。这就是说,你可以定义Range对象并对其进行操作,无需更改选定内容。此外,你还可以在文档中定义多个Range对象,但每个Range对象只能具有一个选定内容。

使用Range方法返回一个Range对象, 该对象由给定的起始和结束字符位置定义。例如:以下示例将返回引用活动文档中的前 10 个字符的 Range 对象:

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

2 Range对象应用的灵活性

1) 使用Range属性可返回一个Range对象, 该对象由另一个对象的开头和结尾定义。 Range 属性适用于多种对象(例如 Paragraph、Bookmark )。

2) 以下示例返回引用活动文档中第一段的 Range 对象。

Set myRange = ActiveDocument.Paragraphs(1).Range

3) 下面的示例返回一个Range对象, 该对象引用活动文档中的第二到第四个段落。

Set myRange = ActiveDocument.Range( Start:=ActiveDocument.Paragraphs(2).Range.Start, _

End:=ActiveDocument.Paragraphs(4).Range.End)

4) 使用Document对象的range方法可以创建一个Range对象,该对象位于主体文档中并具有给定的起始和终结点。 下面的示例创建一个Range对象,该对象从第一个字符的开始位置开始并延伸到第十个字符:

Set rngDoc = ActiveDocument.Range(Start:=0, End:=10)

5) 得到 Range 对象后,可使用它的任何属性或方法来修改该Range对象。下列示例选定活动文档中的第二个段落并将所选内容居中。

ActiveDocument.Paragraphs(2).Range.Select

Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter

3 利用Range对象设置某段文档的格式

由于Range对象具有非常大的灵活性,我们可以利用它来完成某段文档的格式设置,下面我们来看代码:

Sub mynz()

Dim myRng As Range

Set myRng = ActiveDocument.Paragraphs(1).Range

With myRng

.Bold = True

.ParagraphFormat.Alignment = wdAlignParagraphCenter

With .Font

.Name = "隶书"

.Size = 15

End With

End With

End Sub

代码截图:

代码的解读:

1) 以上代码利用了嵌套with语句,来设置活动文档的第一段,居中,加粗,字体为"隶书",字号为15。

2) myRng = ActiveDocument.Paragraphs(1).Range 是将第一段的文档赋给变量myRng。大家要注意这种用法,是非常方便和实用的。

代码的运行效果,代码运行前:

代码运行后:

今日内容回向:

1 什么是Word中的Range对象?

2 Word中的Range对象有什么特点?

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

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

相关推荐
VBA63374 天前
VBA高级应用30例 应用6 第5部分:5 利用VBA从XML文件中导出数值数据
vba
VBA633712 天前
VBA信息获取与处理专题七第二节 网络通信过程的解读
vba
VBA633717 天前
数组与字典解决方案第二十九讲 数组的创建方法小结及回填的注意事项
vba
小妖6661 个月前
excel 怎么在单元格内容自动加上一段文字不能用公式
excel·vba
VBA63371 个月前
VBA之Word应用第五章第五节 Range对象的属性(四)
vba
VBA63371 个月前
VBA信息获取与处理专题七第一节 网络通信基础
vba
yivifu1 个月前
怎样将Word文档中脚注引用后面的空格轻松删除
word·vba
VBA63371 个月前
VBA之Excel应用第五章第四节 变量的生命周期
vba
VBA63371 个月前
VBA中类的解读及应用第三十五讲 类对象的生死轮回----“二师兄”的成长历程之七
vba
SunnyDays10111 个月前
使用 C# 添加、修改和删除 Excel VBA 宏 (无需 Microsoft Office Interop)
c#·excel··vba