Actually, I sort of figured it out, although it's terribly awkward.
Here's what I got -- it seems to do the trick:
Sub deadline()
Target = InputBox("Enter deadline", "Deadline")
If Not IsDate(Target) Then
MsgBox ("Sorry, that is not a valid date.")
Else
Selection.Font.Bold = 1
Selection.InsertAfter "(" + Target + " -"
Selection.Collapse direction:=wdCollapseEnd
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="="
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="SET EndDate """ + Target + """"
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.TypeParagraph
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="SET a"
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="=INT((14-"
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="EndDate \@ M"
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.TypeText Text:=")/12)"
Selection.MoveRight Unit:=wdCharacter, Count:=4
Selection.TypeParagraph
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="SET b"
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="="
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="EndDate \@ yyyy"
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.TypeText Text:="+4800-a"
Selection.MoveRight Unit:=wdCharacter, Count:=4
Selection.TypeParagraph
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="SET c"
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="="
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="EndDate \@ M"
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.TypeText Text:="+12*a-3"
Selection.MoveRight Unit:=wdCharacter, Count:=5
Selection.TypeParagraph
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="SET d"
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="EndDate \@ d"
Selection.MoveRight Unit:=wdCharacter, Count:=4
Selection.TypeParagraph
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:= _
"=d+INT((153*c+2)/5)+365*b+INT(b/4)-INT(b/100)+INT(b/400)-320"
Selection.TypeText Text:="45"
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.TypeParagraph
Selection.TypeText Text:="-"
Selection.TypeParagraph
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="SET a"
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="=INT((14-"
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="Date \@ M"
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.TypeText Text:=")/12)"
Selection.MoveRight Unit:=wdCharacter, Count:=4
Selection.TypeParagraph
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="SET b"
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="="
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="Date \@ yyyy"
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.TypeText Text:="+4800-a"
Selection.MoveRight Unit:=wdCharacter, Count:=4
Selection.TypeParagraph
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="SET c"
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="="
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="Date \@ M"
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.TypeText Text:="+12*a-3"
Selection.MoveRight Unit:=wdCharacter, Count:=4
Selection.TypeParagraph
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="SET d"
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="Date \@ d"
Selection.MoveRight Unit:=wdCharacter, Count:=4
Selection.TypeParagraph
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:= _
"=d+INT((153*c+2)/5)+365*b+INT(b/4)-INT(b/100)+INT(b/400)-320"
Selection.TypeText Text:="45"
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.TypeParagraph
Selection.TypeText Text:="\# ,0"
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.InsertAfter ")"
Selection.Collapse direction:=wdCollapseEnd
ActiveDocument.Fields.Update
Selection.Font.Bold = 0
End If
End Sub