如何用vba设置word段落的行间距、段前、段后间距等?

在word中可以设置段落的行间距,也可以设置一个段落的前面空几行,也可以设置一个段落的后面空几行,如下图所示:

在vba中可以用Paragraph对象或者ParagraphFormat对象设置各种段落间距。

一、设置段落的行间距(行距)

要设置段落的行间距(行距)可以使用LineSpacingRule属性和LineSpacing属性两者结合。

如下的vba代码分别演示了如何设置某个段落的行间距为1.5倍行距、单倍行距、多倍行距、固定行距、最小行距:

Sub QQ1722187970()
    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

这里要特别注意的是,单倍行距就相当于原来的字体是什么高度,就是什么高度,没有增加额外的行间距。

二、设置段前、段后的间距

要设置段落前或段落后的行距,可以使用SpaceBeforeSpaceAfter属性,还可以通过设置SpaceBeforeAuto 和SpaceAfterAuto 属性把段前和段后的间距设置为自动设置。

代码如下:

Sub QQ1722187970()
    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
       

发表评论