Hola, para esta última pregunta puedes hacer algo así al salir del campo:
Código:
If Not IsDate(Text1) Then MsgBox "Debe introducir una fecha", vbCritical
De todos modos debes controlar que tipo de fecha te permite ya que por ejemplo en el tema del año ya que es de suponer que 15/12/3024 es una fecha correcta y tu programa 'supongo' que no debería aceptarla.
Saludos