《VBA之Word应用》(版权10178982),是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕"面向对象编程"讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实例让大家感受到Word VBA 的妙处。
这套教程是专门针对WORD VBA 的教程,是VBA中的稀缺资源,我给这套教程分归为中级教程,希望大家在VBA入门后再学习这套教程,这样会更加深入的理解面向对象编程的意义。
本套教程共三册十六章,今日内容为:VBA之Word应用第三章第八节:利用Range方法进行字体及对齐方式设置
【分享成果,随喜正能量】106 好的习惯,排名第一的是:自律;排名第二的是:终身学习;排名第三的是:保持运动。拥有这三种习惯,美好人生垂手可得。。
第三章 文档集合Documents对象及文档Document对象
大家好,我们继续Word VBA的讲解。这讲开始,我们进入非常重要一章的学习,文档集合Documents对象及文档Document对象。在前面的讲解中我们可以大概看出文档和文档集合在Word VBA中的作用,很多的对象都是文档对象属性的返回对象,我们通过这章的学习要掌握Word VBA的基本应用。
第八节 利用Range方法进行字体及对齐方式设置
大家好,在上节中,我们讲了Document对象的几个方法,下面我们将利用一个实例来讲解一下Range方法的实际应用。大家要通过这个实例的学习,来巩固一下自己对Document对象方法的认识。
1 实例场景的介绍
在实际的Word操作中,我们经常会用到加粗字体,英文大小写的转换,以及对齐设置的操作,这些也是Word操作的基本功,我们这节中将利用VBA代码来完成这些工作,这个实例中我们会推出一段代码,代码将完成三项工作,首先将当前活动文档的开始10个字符变成粗体,然后将选择区域变成大写,最后将第二至第三段赋值给变量myRange,然后右对齐该区域中的段落。这些代码的中心语句就是Range方法。粗体设置利用的是Bold属性;大小写设置利用的是Case属性;对齐利用的是Alignment属性。
2 利用Range方法进行字体及对齐设置的代码及解读
我们先看看我给出的代码:
Sub mynzG()
'将开始10个字符变成粗体
ActiveDocument.Range(Start:=0, End:=10).Bold = True
'将选择区域变成大写
Dim myRang As Range
Set myRang = ActiveDocument.Range(Start:=Selection.Start, End:=Selection.End)
myRang.Case = wdUpperCase
'将第二至第三段创建并设置变量myRange,然后右对齐该区域中的段落。
Dim myDoc As Document
Dim myRange As Range
Set myDoc = ActiveDocument
If myDoc.Paragraphs.Count >= 6 Then
Set myRange = myDoc.Range(myDoc.Paragraphs(2).Range.Start, _
myDoc.Paragraphs(3).Range.End)
myRange.Paragraphs.Alignment = wdAlignParagraphRight
End If
End Sub
代码截图:

代码的讲解:
1) '将开始10个字符变成粗体
ActiveDocument.Range(Start:=0, End:=10).Bold = True 这句代码是设置了开始是从0字符开始,结尾是第10个字符,然后将range区域的Bold属性设置为True,表示设置成粗体。
2)'将选择区域变成大写
Dim myRang As Range
Set myRang = ActiveDocument.Range(Start:=Selection.Start, End:=Selection.End)
myRang.Case = wdUpperCase
以上这段代码设置了一个变量,并将ActiveDocument.Range(Start:=Selection.Start, End:=Selection.End)赋值给这个变量。其中Start:=Selection.Start, End:=Selection.End设置了选择区域的开始于结束位置。
wdUpperCase是设置为大写,这个常量是WdCharacterCase的枚举值,这个值如下:
wdFullWidth 7 全角,用于日文字符。
wdHalfWidth 6 半角,用于日文字符。
wdHiragana 9 平假名字符,与日文文字一起使用。
wdKatakana 8 片假名字符,与日文文字一起使用
wdLowerCase 0 小写
wdNextCase -1 在大写、小写和句首字母大写之间切换。
wdTitleSentence 4 句首字母大写。
wdTitleWord 2 标题字大写。
wdToggleCase 5 在大写和小写之间切换。
wdUpperCase 1 大写.
3)'将第二至第三段创建并设置变量myRange,然后右对齐该区域中的段落。
Set myDoc = ActiveDocument
If myDoc.Paragraphs.Count >= 6 Then
Set myRange = myDoc.Range(myDoc.Paragraphs(2).Range.Start, _
myDoc.Paragraphs(3).Range.End)
myRange.Paragraphs.Alignment = wdAlignParagraphRight
End If
以上代码设置一个变量并给这个变量赋值为当前活动文档,然后判断一下这个文档中的段落是否大于6,如果是,那么将设置myRange对象为第二段和第三段,并这是成右对齐。
右对齐是常量wdAlignParagraphRight,这个值是WdParagraphAlignment的枚举值.如下:
wdAlignParagraphCenter 1 居中
wdAlignParagraphDistribute 4 段落字符被分布排列,以填满整个段落宽度。wdAlignParagraphJustify 3 完全两端对齐。
wdAlignParagraphJustifyHi 7 两端对齐,字符高度压缩。
wdAlignParagraphJustifyLow 8 两端对齐,字符轻微压缩。
wdAlignParagraphJustifyMed 5 两端对齐,字符中度压缩。
wdAlignParagraphLeft 0 左对齐。
wdAlignParagraphRight 2 右对齐。
wdAlignParagraphThaiJustify 9 按照泰语格式布局两端对齐。
3 利用Range方法进行字体及对齐设置代码的运行效果
下面我们看看代码的运行效果,下图为代码运行前的当前文档:

运行后:

由此我们看到了,三项要求均达到了场景需求。
今日内容回向:
1 如何利用文档对象的range方法设置字体的粗细、大小写及段落的对齐?
2 上述WdCharacterCase的枚举值和WdParagraphAlignment 常量的枚举值有哪些,意义是什么?
本讲内容参考程序文件:Doc 003文档.docm

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

