Since the content controls aren't being updated, that suggests Greg's delay implementation after '.PrintOut' won't make any difference.
Here's another version of the code:
Code:
Private Sub wdApp_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
Application.ScreenUpdating = False
Dim CCtrl As ContentControl, objUndo As UndoRecord
Set objUndo = Application.UndoRecord: objUndo.StartCustomRecord
With Doc
For Each CCtrl In .ContentControls
With CCtrl
If .Type <> wdContentControlPicture And .Type <> wdContentControlCheckBox Then
If .Range.Text = .PlaceholderText Then
.Range.Text = "_________________________"
End If
End If
End With
Next
.PrintOut
objUndo.EndCustomRecord
.Undo
End With
Cancel = True
Application.ScreenUpdating = True
End Sub