Im Prinzip so:
deletenr = 1
For i = deletenr To Ubound (Aepfel) - 1
Set Aepfel (i) = Aepfel (i + 1)
Next i
Redim Preserve Aepfel (Ubound (Aepfel) - 1)
Brauchst Du denn wirklich den direkten Zugriff über die Indizes? Wenn nicht, dann würde ich über eine Liste arbeiten, die ist in diesem Fall viel Flexibler...
Class Apfel
Public strIdentifier as String
Sub New()
Me.strIdentifier = "Irgendeineindeutigeridentifier"
End Sub
End Class
Dim tmpApfel as Apfel
Dim lAepfel List as Apfel
Set tmpApfel = New Apfel()
Set lAepfel( tmpApfel.strIdentifier ) = tmpApfel
Ein Element löschen geht dann einfach überErase lAepfel( irgendeinIdentifier )