Your code can temporarily change the CC to make it editable and then change it back after it is edited.
Code:
Private Sub Document_ContentControlOnExit(ByVal aCC As ContentControl, Cancel As Boolean)
Dim aDate As Date, ccDue As ContentControl
If aCC.ShowingPlaceholderText Then
Select Case aCC.Tag
Case "Rev. #", "PDR #", "Date of Discovery", "Type" 'these CCs require an answer
MsgBox "This Content Control requires a response.", vbInformation + vbOKOnly, "INPUT REQUIRED"
Cancel = True
End Select
Else 'if CC has content, check its type matches the content
If aCC.Tag Like "*[#]" Then 'if the CCs tag ends with '#'
If Not IsNumeric(aCC.Range.Text) Then
MsgBox "This field requires a numeric response.", vbInformation + vbOKOnly, "INPUT REQUIRED"
Cancel = True
End If
ElseIf aCC.Tag Like "*Date*" Then 'if CCs tag includes 'Date'
If Not IsDate(aCC.Range.Text) Then
MsgBox "This field requires a date response.", vbInformation + vbOKOnly, "INPUT REQUIRED"
Cancel = True
ElseIf aCC.Title = "Date of Initiation" Then 'note tag doesn't match on this CC in your doc
aDate = CDate(aCC.Range.Text) + 30
Set ccDue = ActiveDocument.SelectContentControlsByTitle("Due Date")(1)
ccDue.LockContents = False
ccDue.Range.Text = Format(aDate, "d mmm yyyy") 'if date picker, format may be as per CC property
ccDue.LockContents = True
End If
End If
End If
End Sub