De acuerdo a la definición lo aleatorio es algo que depende del azar,
de la suerte o de un proceso casual. Procede del vocablo latino aleatorius.
Para generar números aleatorios en VBA usamos
la función RND, la función recibe como parámetro un valor de tipo single.
Dependiendo de este parámetro será el valor retornado por la función RND:
Si el parámetro es menor que cero retorna el
mismo número, mayor que cero el siguiente numero
aleatorio en la secuencia, igual a
cero el número generado por última vez, si se omite el parámetro retorna el
siguiente número aleatorio en la
secuencia.
Para ejemplificar el uso de la función RND , creamos una macro que
genera números aleatorios en un
rango de valores.
Tenemos la siguiente hoja de cálculo:
En la celda B4 se ingresa el valor inferior del
rango y en la celda C4 el valor superior. En la celda C4 ingresamos la cantidad
de números aleatorios que queremos
generar.
Definimos una rutina principal
En esta rutina se valida que exista un valor
inicial y otro final, además que el valor inicial sea menor al final. Si esta condición
se cumple se borran los datos que tenga la columna E y se invoca la rutina
generadora de números aleatorios.
La rutina recibe como parámetro el rango dentro
del cual se generaran los números aleatorios.
Definimos una variable en la que almacenaremos el número aleatorio encontrado, una variable para contar las filas de
la hoja de cálculo y la iniciamos en cuatro.
Creamos un ciclo que inicia en el número cuatro
hasta el valor contenido en la celda D4 de la hoja de cálculo.
Inicializamos el generador de números aleatorios con la función Randomize. Para encontrar el número aleatorio escribimos la
siguiente instrucción:
aleatorio
= CInt(((numfin - numini + 1) * VBA.Rnd()) + numini)
Donde numfin es el número mayor y numini el número
menor
Espero que esta macro te sea útil, si tienes
dudas o comentarios escríbenos a macrosymacros@gmail.com.