Word 2013 VB脚本循环文档和更改样式

时间:2012-11-30 20:52:42

标签: word-vba

我需要一个脚本来迭代word文档,并将标题样式或图像后面的段落样式更改为自定义样式,而不需要第一行缩进。

如何遍历word文档中的段落/标题/项目?我如何获得风格?那我怎么设置风格呢?

目标很简单:我希望段落的第一行缩进,但如果段落在页眉行或图像后面则不行。而且由于这是一份大文件而且我经常得到那些我喜欢某种自动化的东西,而不是试图用手去做。
所以我想编写一个迭代段落的脚本,当它位于标题样式或图像之后,将样式从“段落”更改为“段落不缩进”。

1 个答案:

答案 0 :(得分:3)

以下是一些帮助您入门的基本代码。不幸的是,Paragraph.Style参数不区分文本和图像,但您可以检查并查看Paragraph.Range对象是否有InlineShapes,它们是图像。

Sub indentParas()
    Dim doc As Document
    Set doc = ActiveDocument
    Dim para As Word.Paragraph
    Dim i As Boolean
    i = False
    For Each para In doc.Paragraphs

        If i = False Then
            para.IndentCharWidth 4
        End If

        If para.Range.InlineShapes.Count > 0 Then
            i = True
        ElseIf Left(para.Style, 7) = "Heading" Then
            i = True
        Else
            i = False
        End If
    Next
End Sub

注意:这是在Word 2010中测试的。