如何用vba设置word文档段落的各种缩进?

在word中可以设置word文档段落的各种缩进格式,比如首行缩进、悬挂缩进、整体缩进等。

接下来介绍如何用vba设置段落的各种缩进格式:

一、首行缩进N个字符

要设置段落的首行缩进为N个字符,可以使用Paragraph对象的IndentFirstLineCharWidth方法。

代码如下:

Sub QQ1722187970()
    Dim oDoc As Document
    Dim oP As Paragraph
    Dim oRng As Range
    Set oDoc = Word.ActiveDocument
    With oDoc
        Debug.Print .Paragraphs.Count
        Set oP = .Paragraphs(1)
        With oP
            '先设置参数为一个极大的负值,取消首行缩进
            .IndentFirstLineCharWidth -10000
            '然后首行缩进3个字符
            .IndentFirstLineCharWidth 6
        End With
    End With
End Sub

Paragraph对象的IndentFirstLineCharWidth方法如果参数设置为负值,将取消对应的首行缩进字符数。

二、段落整体左侧缩进N个字符

要设置段落整体左侧缩进为N个字符,可以使用Paragraph对象的IndentCharWidth方法。

代码如下:

Sub QQ1722187970()
    Dim oDoc As Document
    Dim oP As Paragraph
    Dim oRng As Range
    Set oDoc = Word.ActiveDocument
    With oDoc
        Debug.Print .Paragraphs.Count
        Set oP = .Paragraphs(1)
        With oP
'            先设置参数为一个极大的负值,取消段落的整体左侧缩进
            .IndentCharWidth -1000
'            取消首行缩进
            .IndentFirstLineCharWidth -10000
'            然后整个段落缩进10个字符
            .IndentCharWidth 10
        End With
    End With
End Sub

Paragraph对象的IndentCharWidth方法如果参数设置为负值,将取消对应的整体缩进字符数。

三、段落整体缩进N个制表位

要设置段落整体左侧缩进为N个制表位,需要调用N次Paragraph对象的Indent方法,如果要取消缩进制表位,可以调用Paragraph对象的Outdent方法。

代码如下:

Sub QQ1722187970()
    Dim oDoc As Document
    Dim oP As Paragraph
    Dim oRng As Range
    Set oDoc = Word.ActiveDocument
    With oDoc
        Debug.Print .Paragraphs.Count
        Set oP = .Paragraphs(1)
        With oP
            '缩进1个制表位
            .Indent
            '缩进2个制表位
            .Indent
            .Outdent
            .Outdent
        End With
    End With
End Sub

比起多次调用Paragraph对象的Indent方法,还可以直接使用Paragraph对象的TabIndent方法,代码如下:

Sub QQ1722187970()
    Dim oDoc As Document
    Dim oP As Paragraph
    Dim oRng As Range
    Set oDoc = Word.ActiveDocument
    With oDoc
        Debug.Print .Paragraphs.Count
        Set oP = .Paragraphs(1)
        With oP
            .TabIndent -100
            .TabIndent 2
        End With
    End With
End Sub

四、段落悬挂缩进N个字符

在vba中没有内置直接设置悬挂缩进几个字符的方法,但是内置了悬挂缩进几个制表位的方法。

使用Paragraph对象的TabHangingIndent方法,可以设置悬挂缩进几个制表位,由于默认1个制表位代表N个字符,通过这个关系可以设置悬挂缩进几个字符。

以下代码先设置默认的制表位为2个字符(0.74厘米),然后再悬挂缩进2个制表位,等于悬挂缩进4个字符。

Sub QQ1722187970()
    Dim oDoc As Document
    Dim oP As Paragraph
    Dim oRng As Range
    Set oDoc = Word.ActiveDocument
    With oDoc
        '设置默认的制表位为2个字符,0.74厘米
       .DefaultTabStop = Word.Application.CentimetersToPoints(0.74)
        Set oP = .Paragraphs(1)
        With oP
            '悬挂缩进4个字符
            .TabHangingIndent 2
        End With
    End With
End Sub
       

发表评论