Tony,
Just for the sake of completeness, while your AutoOpen() macros may be updating all of the fields you care about, it is not a comprehensive update. You might consider:
Sub AutoOpen()
UpdateAllFields
CheckBoxesByTag
lbl_Exit:
Exit Sub
End Sub
Sub UpdateAllFields()
Dim oRngStory As Word.Range
Dim lngJunk As Long
Dim oShp As Shape, oCanShp As Shape
Dim oToc As TableOfContents, oTOA As TableOfAuthorities, oTOF As TableOfFigures
lngJunk = ActiveDocument.Sections(1).Headers(1).Range.StoryType
For Each oRngStory In ActiveDocument.StoryRanges
'Iterate through all linked stories
Do
On Error Resume Next
oRngStory.Fields.Update
Select Case oRngStory.StoryType
Case 6, 7, 8, 9, 10, 11
If oRngStory.ShapeRange.Count > 0 Then
For Each oShp In oRngStory.ShapeRange
If oShp.TextFrame.HasText Then
oShp.TextFrame.TextRange.Fields.Update
End If
If oShp.Type = msoCanvas Then
For Each oCanShp In oShp.CanvasItems
If oCanShp.TextFrame.HasText Then
oCanShp.TextFrame.TextRange.Fields.Update
End If
Next oCanShp
End If
Next
End If
Case Else
'Do Nothing
End Select
On Error GoTo 0
'Get next linked story (if any)
Set oRngStory = oRngStory.NextStoryRange
Loop Until oRngStory Is Nothing
Next oRngStory
'Special Cases
For Each oToc In ActiveDocument.TablesOfContents
oToc.Update
Next oToc
For Each oTOA In ActiveDocument.TablesOfAuthorities
oTOA.Update
Next
For Each oTOF In ActiveDocument.TablesOfFigures
oTOF.Update
Next
lbl_Exit:
Exit Sub
End Sub
Sub CheckBoxesByTag()
Dim lngProp As Long
Dim arrProperties() As String
Dim varValue As Variant
Dim oCC As ContentControl
'Define the names of the custom properties to check
arrProperties = Split("DCR Type|Change Classification", "|")
'Loop through each property name in the array
For lngProp = 0 To UBound(arrProperties)
'Get the value of the custom property
varValue = ActiveDocument.CustomDocumentProperties(arrProperties(lngProp)).Value
'If the value is not empty, find the corresponding content control by tag and check it
If Not IsEmpty(varValue) Then
'Get the specific content control associated with that value e.g., tag = value
Set oCC = ActiveDocument.SelectContentControlsByTag(varValue).Item(1)
With oCC
.LockContents = False
.Checked = True
.LockContents = True
End With
End If
Next lngProp
lbl_Exit:
Exit Sub
End Sub