ho provato però adesso ricevo un'errore

codice:
Private Sub MDIForm_Load()

    'Distanza da Sinistra
    Dim ileft As Integer
    'Distanza dall'alto
    Dim iTop As Integer
    'path dei file
    Dim strpath As String
    'Array che conterrà i nomi
    Dim arrayIMG As Variant
   
    'Imposta i margini
    ileft = 200
    iTop = 200
    
    strpath = "D:\File Utili\VB Utility\Anteprima immagini\immagini\"
    Thefile$ = Dir$("D:\File Utili\VB Utility\Anteprima immagini\immagini\*." & "jpg")
    
    'Ciclo i file per recuperarne i nomi
    While Thefile$ <> ""
        arrayIMG = arrayIMG & Thefile$ & "#"
        Thefile$ = Dir$
    Wend
    
    'Tolgo l'ultimo # per non avere un elemento dell'array vuoto
    arrayIMG = Left(arrayIMG, Len(arrayIMG) - 1)
    'Creo  l'array contenente i nomi dei file
    arrayIMG = Split(arrayIMG, "#")
            
    'Il ciclo viene fatto da zero fino all'ubound(ultimo elemento di array) di arrayIMG

    For i = 0 To UBound(arrayIMG)
        'Solo se devo creare un nuovo elemento
        If i > 0 Then
            Load Image1(i) 'creo un'altro (elemento del'array) del componente IMAGE
        End If
    
        With Image1(i) 'qui ricevo l'errore
            .Left = ileft
            .Top = iTop
            .Visible = True
            .Stretch = True
            .Picture = LoadPicture(strpath & arrayIMG(i))
        End With
        
        
    If ileft > 9000 Then
    iTop = iTop + 1000
    ileft = 200
    
    ileft = ileft + 2500 '<-- mi sposto a destra per evitare di caricare le immagini una sopra all'altra
    Else
    ileft = ileft + 2500 '<-- mi sposto a destra per evitare di caricare le immagini una sopra all'altra
    End If
    
   Next
    
End Sub

l'oggetto picture a come nome "Image1"
:master: