0

Word 文書のすべてのフィールドを更新するこのリファレンスを見つけました。http://www.gmayor.com/installing_macro.htm

Sub UpdateAll()
    Dim oStory As Range
    For Each oStory In ActiveDocument.StoryRanges
        oStory.Fields.Update
        If oStory.StoryType <> wdMainTextStory Then
            While Not (oStory.NextStoryRange Is Nothing)
                Set oStory = oStory.NextStoryRange
                oStory.Fields.Update
            Wend
        End If
    Next oStory
    Set oStory = Nothing
End Sub

DocPropertyこのマクロを使用して更新タイプのフィールドのみに変更したいと思います。

例: すべてのタイプまたは他のDocPropertyすべてのタイプをスキップしながら、すべてのタイプを更新したいと考えています。Ref

4

1 に答える 1

0

Type更新する前にfields プロパティを確認することはできますが、それらをループする必要があります。

これを行うには多くの方法がありますが、ループをサブに入れているので、2 つの更新行を次のように変更するだけです。

oStory.Fields.Update

Call UpdateRangeFieldsOfType(oStory, wdFieldDocProperty)


ここにサブがあります:

Sub UpdateRangeFieldsOfType(poRange As Range, peType As WdFieldType)
    Dim oField As Field

    For Each oField In poRange.Fields
        If oField.Type = peType Then
            oField.Update
        End If
    Next
    Set oField = Nothing
End Sub
于 2012-08-16T10:22:30.630 に答える