Detectar el primer índice libre de una matriz de controles

Función para detectar si un índice de una matriz de controles está libre y así poder reutilizarlo.

Hay situaciones en que es necesario cargar y descargar controles en tiempo de ejecución. La forma más sencilla de cargar un nuevo control en un formulario es usar una matriz de controles. Sin embargo, si los índices de la matriz no están en orden ascendente (provocado por descargas de algunos de los controles), no hay función intrínseca que permita hallar el primer índice libre de dicha matriz y aprovechar al máximo la numeración de la misma. Para ello sirve esta función: PrimerIndiceLibre, que permite detectar el primer índice libre de una matriz de controles usando bucles, en el caso que la numeración esté completa la función devuelve el último índice de la matriz + 1.

Código de la función:


Public Function PrimerIndiceLibre(Matriz As Object) As Integer
On Error GoTo Encontrado
Dim IndiceFaltante As Integer
Dim Nada As String
Dim i As Integer
For i = 0 To Matriz.
UBound
    Nada = Matriz(i).Tag
    DoEvents
Next i
PrimerIndiceLibre = Matriz.UBound + 1
Exit Function
Encontrado:
IndiceFaltante = i
DoEvents
PrimerIndiceLibre = IndiceFaltante
Exit Function
End Function

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *