Fryderyk,
ho modificato la Sub di cui trattasi, prendendo lo spunto dall'articolo che ti ho segnalato della Microsoft; il codice può essere migliorato anche se sembra funzionare:

codice:
Sub Riproporziona()
    On Error Resume Next

    Dim picTemp As VB.PictureBox
    
    'Variabile per le PictureBox:
    Dim c As Control
    
    'Variabile per le Line:
    Dim c2 As Control
    Dim btRid As Byte
    
    If (sngHAtt And sngLAtt) <> (sngH And sngL) Then
        Dim ii As Integer
        For ii = 0 To Form1.Controls.Count - 1
        'Se alcuni controlli sono invisibili non si deve fare nulla:
            If TypeOf Form1.Controls(ii) Is Timer Or TypeOf Form1.Controls(ii) Is ImageList Then
                'non fa nulla
                ElseIf TypeOf Form1.Controls(ii) Is CommonDialog Then
                'non fa nulla
                ' Qualora il controllo sia il ComboBox riduce la dimensione della Font: 
                ElseIf TypeOf Form1.Controls(ii) Is ComboBox Then
                    Form1.Controls(ii).FontSize = Form1.Controls(ii).FontSize * ((0.5 * dblRapL) + (0.5 * dblRapH))
                    Form1.Controls(ii).Move _
                        ArrayProportion(ii).LeftProportions * Form1.ScaleWidth * dblRapL, _
                        ArrayProportion(ii).TopProportions * Form1.ScaleHeight * dblRapH, _
                        ArrayProportion(ii).WidthProportions * Form1.ScaleWidth * dblRapL
                Else
                'i controlli vengoni ridimensionati e spostati:
                Form1.Controls(ii).Move _
                    ArrayProportion(ii).LeftProportions * Form1.ScaleWidth * dblRapL, _
                    ArrayProportion(ii).TopProportions * Form1.ScaleHeight * dblRapH, _
                    ArrayProportion(ii).WidthProportions * Form1.ScaleWidth * dblRapL, _
                    ArrayProportion(ii).HeightProportions * Form1.ScaleHeight * dblRapH
            End If
    'Riproporziona le linee:
            For Each c2 In Form1.Controls
                If TypeOf c2 Is Line And btRid = 0 Then
                    c2.X1 = c2.X1 * dblRapL
                    c2.Y1 = c2.Y1 * dblRapH
                    c2.X2 = c2.X2 * dblRapL
                    c2.Y2 = c2.Y2 * dblRapH
                    btRid = 1
                End If
            Next
        Next ii
    
    'Adatta l'immagine al nuovo controllo PictureBox:
            For Each c In Form1.Controls
                'Controlla che si tratti di una PictureBox e che la ris. larghezza
                'del controllo sia diversa da quella di sviluppo:
                If TypeOf c Is PictureBox And btLoad = 0 Then
                    'PictureBox temporanea:
                    Set picTemp = Form1.Controls.Add("VB.PictureBox", "picTemp")
                    'La PictureBox temporanea assume le dimensioni del controllo:
                    picTemp.Width = c.Width
                    picTemp.Height = c.Height
                    picTemp.AutoRedraw = True
                    picTemp.AutoSize = False
                    'Disegna l'immagine sulla PictureBox Temporanea
                    'tenuto conto delle nuove dimensioni del controllo PictureBox:
                    picTemp.PaintPicture c.Picture, 0, 0, (picTemp.Width), (picTemp.Height)
                    'Carica l'immagine grafica nella PictureBox:
                    c.Picture = LoadPicture()
                    c.Picture = picTemp.Image
                    'Rimuove l'immagine temporanea:
                    Form1.Controls.Remove picTemp
                    btLoad = 1
                End If
            Next
            
'Rapporta la dimensione Altezza della Frm considerata:
'l'altezza della barra superiore del Titolo,la barra dei menu e la TollBar:
        Form1.Height = ((Form1.Height - Hs) * dblRapH) + Hs
        Form1.Width = Form1.Width * dblRapL
    End If
End Sub
Spero che ti sia d'aiuto.