在vba中可以用Paragraph对象或者ParagraphFormat对象设置各种段落间距。
一、设置段落的行间距(行距)
要设置段落的行间距(行距)可以使用LineSpacingRule属性和LineSpacing属性两者结合。
如下的vba代码分别演示了如何设置某个段落的行间距为1.5倍行距、单倍行距、多倍行距、固定行距、最小行距:
这里要特别注意的是,单倍行距就相当于原来的字体是什么高度,就是什么高度,没有增加额外的行间距。
Sub 设置段落的行间距()
Dim oDoc As Document
Set oDoc = Word.ActiveDocument
Dim oP As Paragraph
Set oP = oDoc.Paragraphs(1)
With oP
'行间距设置为1.5倍
.LineSpacingRule = wdLineSpace1pt5
'行间距设置为单倍
.LineSpacingRule = wdLineSpaceSingle
'行间距设置为双倍
.LineSpacingRule = wdLineSpaceDouble
'行间距设置最小值
.LineSpacingRule = wdLineSpaceAtLeast
'设置最小行距为48磅,1 line=12磅
.LineSpacing = Word.Application.LinesToPoints(4)
'行间距设置为多倍
.LineSpacingRule = wdLineSpaceMultiple
'设置行距为6行
.LineSpacing = Word.Application.LinesToPoints(6)
'行间距设置为固定值
.LineSpacingRule = wdLineSpaceExactly
'设置行距为固定值60磅
.LineSpacing = Word.Application.LinesToPoints(5)
End With
End Sub
二、设置段前、段后的间距
要设置段落前或段落后的行距,可以使用SpaceBefore和SpaceAfter属性,还可以通过设置SpaceBeforeAuto 和SpaceAfterAuto 属性把段前和段后的间距设置为自动设置。
Sub 设置段前、段后的间距()
Dim oDoc As Document
Set oDoc = Word.ActiveDocument
Dim oP As Paragraph
Set oP = oDoc.Paragraphs(1)
With oP
'段落后面空5行
.SpaceAfter = Word.Application.LinesToPoints(5)
'段落前面空5行
.SpaceBefore = Word.Application.LinesToPoints(5)
End With
End Sub