If you want the first hidden control to be deleted the Exit For is in the wrong place.
If you want all the hidden controls deleted then Exit For is not required.
Code:
Private Sub cmdEraseblank_Click()
Dim cc As ContentControl
For Each cc In ActiveDocument.ContentControls
If cc.Range.Font.Hidden = True Then
cc.LockContentControl = False
cc.Range.Delete
cc.Delete
Exit For
End If
Next cc
End Sub