选择DocProperty范围

时间:2016-06-09 08:15:55

标签: vba ms-word word-vba

我有无尽的Word文档,所有文档都在其中的相同DocProperty中。 现在我必须修改这个特定DocProperty的字体样式(例如将其设为粗体),必须跳过任何其他DocProperty。

如何使用VBA选择此DocProperty?

我查看了ActiveDocument.Range.Fields集合,但链接的DocProperty的名称在哪里?我只找到了Text,但这是实际的CustomDocProperty的值

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。总之,你想要: -

  • 查看Field.Type的值为85(WdFieldDocProperty)
  • 然后检查Field.Code是否有属性名称/标签

下面是一个检查文档的示例,其中包含用于解释所发生情况的注释: -

Public Sub Sample()
Dim WdDoc   As Word.Document
Dim Fld     As Word.Field

'Connect to the Document
Set WdDoc = ThisDocument

    'Only work if there are fields in the document to begin with
    If WdDoc.Fields.Count > 0 Then

        'Check each field
        For Each Fld In WdDoc.Fields

            'If the type is a DocProperty then we may have a match
            If Fld.Type = wdFieldDocProperty Then

                'If the code contains the name we are after then we have a match!
                If InStr(1, Fld.Code, "Custom1") Then

                    'Select the field
                    Fld.Select

                    'Format the selection
                    Selection.Font.Bold = True

                End If

            End If

        Next

    End If

Set WdDoc = Nothing

End Sub

作为进一步的提示(如果你还没有完成所有准备),将使用FileScriptingObject来帮助使用循环一次性处理所有文档。如果你这样做并且卡住了,那就开始一个新的问题,你有多远,什么不行,SO会帮助我确定。