si es un quilombito chiquito esto de los controles, pero se soluciona como todo, hay que hacer unos chequeos simples con un For Each...aca te dejo un ejemplo simple, pone un boton llamado Command1 en el form con Index = 0, ese sera el padre de la matriz y un boton llamado cmdAcomodar para acomodar automaticamente los controles, cuando haces click en un boton este se descarga.
Private Sub cmdAcomodar_Click()
Call Acomodar
End Sub
Private Sub Command1_Click(Index As Integer)
If Index = 0 Then Command1(0).Visible = False: Exit Sub
Unload Command1(Index)
End Sub
Private Sub Acomodar()
Dim vBoton As CommandButton
Dim i As Integer
For Each vBoton In Command1
If vBoton.Index <> 0 Then
vBoton.Left = 0
vBoton.Top = i
i = i + 1000
End If
Next
End Sub
Private Sub CargarControles()
For i = 0 To 3
If i > 0 Then Load Command1(i)
Command1(i).Visible = True
Command1(i).Left = 0
Command1(i).Caption = "Boton " & i
Command1(i).Top = i * 1000
Next i
End Sub
Private Sub Form_Load()
Call CargarControles
End Sub
saludos.