supergonzales,
serve un ciclo For. Però fai attenzione non sò se riesci a creare 1000 shape (usando una matrice di controlli, come indicato, forse sì, mentre non è possibile disegnare 1000 shape su una Form). Al riguardo devi consultare la guida.
Il seguente è il codice già postato con l'integrazione che ti ho detto.
Intendiamoci, non considera le coordinate ove dislocare le shape (la cosa si complica parecchio).

codice:
Option Explicit
Dim jj As Integer
Private Sub Command1_Click()
    
   Dim j As Integer
   jj = 1
    
    For j = 1 To (Val(Text1.Text) - 1)
        ' Controlla il n° di oggetti clonati:
        If jj = (Val(Text1.Text)) Then Exit Sub
        ' Inserisce il n° di controlli Shape indicato in Text1:
        Load Shp(Shp.UBound + 1)
        ' sposta il nuovo Shape sotto il precedente:
        Shp(Shp.UBound).Move Shp((Shp.UBound - 1)).Left, Shp((Shp.UBound - 1)).Top + (Shp((Shp.UBound - 1)).Height)
        ' Lo rendo visibile:
        Shp((Shp.UBound)).Visible = True
        jj = jj + 1
    Next j
End Sub