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