Here is a correction for the code GRAHAM posted. Commas were missing from the Move method and the order of the Width and height portions of the Move method were reversed.
Code:
Sub ResizeControls()

    On Error Resume Next
    
    Dim I As Integer
    
    For I = 0 To Controls.Count - 1
        With ProportionsArray(I)
            ' move and resize controls
            Controls(I).Move .LeftProportions * ScaleWidth, _
            .TopProportions * ScaleHeight, _
            .WidthProportions * ScaleWidth, _
            .HeightProportions * ScaleHeight
        End With
    Next I
    
End Sub