This works very nicely (I'm sure a link will be coming here from the FAQ soon!), I have a few comments for improvements in addition to Hacks tho -
  • Form_Resize (and form_load) should ignore error 438 too ("Object doesn't support this property or method" - caused by the Shape control).
  • Try this with a small form and maximize it, then restore it. You will see that text boxes are taller than they should be It's an easy fix tho, just put the .FontSize line before the .Top line.
  • There is no need to resize controls if the form is minimized, so you could add this to the top of the Form_Resize event:
    If Me.WindowState = vbMinimized Then Exit Sub
  • You should add comments to say "other code goes here", so people know where to put their own code
  • ..and one (silly) picky one - you should rename sngCntFont to sngCntFontSize