Public Function ArrayDelete(ByRef oArray As Variant, ByVal indexToDelete As Long) As Variant
On Error GoTo ErrHandler
Dim index As Long
Dim tmpArray As Variant
If indexToDelete < LBound(oArray) Or indexToDelete > UBound(oArray) Then
Err.Raise 9
End If
ReDim tmpArray(LBound(oArray) To (UBound(oArray) - 1))
For index = indexToDelete To (UBound(oArray) - 1)
oArray(index) = oArray(index + 1)
Next index
For index = LBound(tmpArray) To UBound(tmpArray)
tmpArray(index) = oArray(index)
Next index
ArrayDelete = tmpArray
ExitHere:
Exit Function
ErrHandler:
MsgBox Err & "-" & Err.Description
ArrayDelete = oArray
Resume ExitHere
End Function