potrsti fare un piccolo escamotage
che va a leggere la risoluzione
codice:
Public Function CheckRez(pixelWidth As Long, pixelHeight As Long) As Boolean
    
    Dim lngTwipsX As Long
    Dim lngTwipsY As Long
    
    'converte i pixels in twips
    lngTwipsX = pixelWidth * 15
    lngTwipsY = pixelHeight * 15
    
    ' rileva la risoluzione corrente
    If lngTwipsX <> Screen.Width Then
        CheckRez = False
    Else
        If lngTwipsY <> Screen.Height Then
            CheckRez = False
        Else
            CheckRez = True
        End If
    End If
End Function
se non è quella che vuoi tu

codice:
Public Declare Function GetDesktopWindow Lib "user32" () As Long
Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Public Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hdc As Long) As Long
Public Const LOGPIXELSX = 88
Public Const LOGPIXELSY = 90
'MODULO:
Public Function IsScreenFontSmall() As Boolean
    Dim hWndDesk As Long
    Dim hDCDesk As Long
    Dim logPix As Long
    Dim r As Long
    hWndDesk = GetDesktopWindow()
    hDCDesk = GetDC(hWndDesk)
    logPix = GetDeviceCaps(hDCDesk, LOGPIXELSX)
    r = ReleaseDC(hWndDesk, hDCDesk)
    If logPix = 96 Then IsScreenFontSmall = True
    Exit Function
End Function

Sub ResizeControls(frmName As Form, winstate As Integer)
    On Error Resume Next
    Dim designwidth As Integer, designheight As Integer, designfontsize As Integer, currentfontsize As Integer
    Dim numofcontrols As Integer, a As Integer
    Dim movetype As String, moveamount As Integer
    designwidth = 1024
    designheight = 768
    designfontsize = 96
' qui al posto di rilegger la risoluzioni imposti tu le dimensioni dello screen
    GetResolutionX =  'esempio 1024
    GetResolutionY = ' esempio 768
    ratiox = GetResolutionX / designwidth
    ratioy = GetResolutionY / designheight
    'check to see what size of fonts are being used
    If IsScreenFontSmall Then
        currentfontsize = 96
    Else
        currentfontsize = 120
    End If
    'work out the ratio for the fontsize
    fontratio = designfontsize / currentfontsize
    If ratiox = 1 And ratioy = 1 And fontratio = 1 Then Exit Sub
    numofcontrols = frmName.Controls.Count - 1 'count the number of controls on the form
    If winstate = 0 Then 
    frmName.Height = frmName.Height * ratioy
    frmName.Width = frmName.Width * ratiox
    If frmName.Tag <> "" Then
        movetype = Left(frmName.Tag, 1)
        moveamount = Mid(frmName.Tag, 2, Len(frmName.Tag))
        Select Case movetype
            Case "L"
                frmName.Left = frmName.Left + moveamount
            Case "T"
                frmName.Top = frmName.Top + moveamount
            Case "H"
                frmName.Height = frmName.Height + moveamount
            Case "W"
                frmName.Width = frmName.Width + moveamount
        End Select
    End If
    
ElseIf winstate = 2 Then 
    frmName.Width = Screen.Width
    frmName.Height = Screen.Height
    frmName.Top = 0
    frmName.Left = 0
End If
For a = 0 To numofcontrols 
    If frmName.Controls(a).Font.Size <= 8 And ratiox < 1 Then
        frmName.Controls(a).Font.Name = "Small Fonts"
        frmName.Controls(a).Font.Size = frmName.Controls(a).Font.Size - 0.5
    Else
        frmName.Controls(a).Font.Size = frmName.Controls(a).Font.Size * ratiox
    End If
    If TypeOf frmName.Controls(a) Is Line Then
        frmName.Controls(a).X1 = frmName.Controls(a).X1 * ratiox
        frmName.Controls(a).Y1 = frmName.Controls(a).Y1 * ratioy
        frmName.Controls(a).X2 = frmName.Controls(a).X2 * ratiox
        frmName.Controls(a).Y2 = frmName.Controls(a).Y2 * ratioy
    ElseIf TypeOf frmName.Controls(a) Is PictureBox Then
        frmName.Controls(a).Width = frmName.Controls(a).Width * ratiox
        frmName.Controls(a).Height = frmName.Controls(a).Height * ratioy
        frmName.Controls(a).Top = frmName.Controls(a).Top * ratioy
        frmName.Controls(a).Left = frmName.Controls(a).Left * ratiox
        frmName.Controls(a).ScaleHeight = frmName.Controls(a).ScaleHeight * ratioy
        frmName.Controls(a).ScaleWidth = frmName.Controls(a).ScaleWidth * ratiox
    ElseIf TypeOf frmName.Controls(a) Is Toolbar Then
        frmName.Controls(a).ButtonHeight = frmName.Controls(a).ButtonHeight * ratioy
        frmName.Controls(a).ButtonWidth = frmName.Controls(a).ButtonWidth * ratiox
        frmName.Controls(a).Width = frmName.Controls(a).Width * ratiox
        frmName.Controls(a).Height = frmName.Controls(a).Height * ratioy
        frmName.Controls(a).Top = frmName.Controls(a).Top * ratioy
        frmName.Controls(a).Left = frmName.Controls(a).Left * ratiox
    ElseIf TypeOf frmName.Controls(a) Is MSFlexGrid Then
        frmName.Controls(a).ColWidth = frmName.Controls(a).ColWidth * ratiox
        frmName.Controls(a).RowHeight = frmName.Controls(a).RowHeight * ratioy
        frmName.Controls(a).Width = frmName.Controls(a).Width * ratiox
        frmName.Controls(a).Height = frmName.Controls(a).Height * ratioy
        frmName.Controls(a).Top = frmName.Controls(a).Top * ratioy
        frmName.Controls(a).Left = frmName.Controls(a).Left * ratiox
    Else
        frmName.Controls(a).Width = frmName.Controls(a).Width * ratiox
        frmName.Controls(a).Height = frmName.Controls(a).Height * ratioy
        frmName.Controls(a).Top = frmName.Controls(a).Top * ratioy
        frmName.Controls(a).Left = frmName.Controls(a).Left * ratiox
    End If
    If frmName.Controls(a).Tag <> "" Then
        movetype = Left(frmName.Controls(a).Tag, 1)
        moveamount = Mid(frmName.Controls(a).Tag, 2, Len(frmName.Controls(a).Tag))
        Select Case movetype
            Case "L"
                frmName.Controls(a).Left = frmName.Controls(a).Left + moveamount
            Case "T"
                frmName.Controls(a).Top = frmName.Controls(a).Top + moveamount
            Case "H"
                frmName.Controls(a).Height = frmName.Controls(a).Height + moveamount
            Case "W"
                frmName.Controls(a).Width = frmName.Controls(a).Width + moveamount
        End Select
    End If
poi stampi
poi lo rimetti normale