La estructura For permite realizar ciertas operaciones un determinado número de veces. A diferencia de otras estructuras iterativas, en esta se conoce exactamente el número de iteraciones a realizar. Tiene la siguiente sintaxis:
FOR condición_inicial TO condición_final STEP pasos ... NEXT
donde "condición_inicial" indica el número inicial desde el cual se va a iterar, "condición_final" el número final hasta el cual se iterará, y "pasos" es la cantidad en la cual se aumentará "condición_inicial" en cada iteración. La parte STEP puede ser obviada, si se hace esto se asume que en cada iteración se incrementará el contador en 1.
Por ejemplo:
For contador = 1 to 5
MsgBox "Contador: " & contador
Next
Este pequeño pedazo de código hará que se muestren ventanas indicando el valor de "contador" en cada iteración. En este caso, se mostrarán 5 ventanas. Nótese que hemos obviado el Step.
EJEMPLO: CÁLCULO DEL FACTORIAL DE UN NÚMERO
Usaremos esta estructura iterativa para escribir una función que permita hallar el factorial de un número. El factorial de un número (denotado por "!") es una operación matemática usada frecuentemente en el álgebra, análisis matemático, etc. Para hallarlo:
Si el número es 0 (cero) ó 1, el factorial es 1. Si el número es mayor de 1, se halla el factorial con la siguiente fórmula: (n-1)! x n
Por ejemplo: 3! = 3x2! = 3x2x1! = 3x2x1 = 6
A continuación mostramos una hoja de excel con números cuyos factoriales deseamos hallar:
Nos colocaremos en la celda C3 y tipearemos "=Factorial(B3)":
Luego presionamos Enter y obtendremos el factorial de ese número. Por último, hallamos el factorial de los número restantes de la tabla:
A continuación el código en VBA de esta función:
Function Factorial(numero)
Dim total, contador As Integer
total = 1
For contador = 1 To numero
total = total * contador
Next
Factorial = total
End Function
Nótese que, si el número es cero, no se entrará a la estructura For, ya que contador (que vale 1) tendría que aumentar hasta llegar a cero, lo cual es imposible ya que en este caso se aumenta de 1 en 1 y cero es menor que 1. De esta forma, se obtiene el valor correcto para el factorial de cero.
Por último, se adjunta un archivo en excel con la función y el ejemplo mostrado.
Ejemplo de For aplicado al Cálculo del Factorial de un Número
Escrito por: Enrique Eduardo López León.
08/11/2012 a las 11:48 pm
Esta UDF, esta correctamente programada, no hay forma de mejorarla; otro buen planteamiento podria ser usando recursividad, que en el interiior de la UDF seria:
If numero = 0 Then
Factorial = 1
Else
Factorial = numero * Factorial(numero - 1)
End If