Funciones matemáticas de VBA

VBA cuenta con funciones matemáticas propias que podemos utilizar en nuestros procedimientos:

Abs(número)–>Valor absoluto

Atn(número)–>Arcotangente de un número

Cos(número)–>Coseno

Exp(número)–>número e como base de los logaritmos naturales

Fix(número)–>La pasrte entera de un número decimal*

Hex(número)–>El valor hexadecimal de un número

Int(número)–>Parte entera del número*

Oct(número)–>El valor octal de un número

Rnd(número)–>Número aleatorio ente 0 y 1.

Sgn(número)–>El signo del número

Sqr(número)–>Raiz cuadrada

Sin(número)–>Seno

Tan(número)–>Tangente

 

(*) La función Fix(n) nos devuelve la porción entera del número. Si este es negativo, Fix  devuelve el primer entero negativo que es mayor que ese número. La función Int(n) nos devuelve el primer entero negativo que es menor o igual que el número.

La función Rnd(número)  genera un número aleatorio entre 0 y 1 con las opciones siguientes:

si número <0 Repite el mismo número cada vez

si número=0 El número generado más reciente

si número>0 El siguiente número aleatorio en la secuencia.

Le inserto aquí un código para que compruebe los resultados.

Sub prueba()
Dim i As Byte
Dim j As Integer

principio:
j = Int(Val(InputBox(«Escoja un número positivo «, «Función Random»)))
If j < 0 Then
MsgBox «Error debe escoger un número positivo»
GoTo principio
Exit Sub
Else
For i = 1 To 15
Cells(i, 1) = Rnd(-j)
Cells(i, 2) = Rnd(0)
Cells(i, 3) = Rnd(j)
Next

End If
End Sub

La necesidad de trabajar con números aleatorios surge muy a menudo. A veces necesitamos trabajar con un abanico más amplio que de 0 a9. Aquí le expongo la fórmula que ha de emplear en tal caso:

Int((superior-inferior)*Rnd + inferior

Ejemplo número aleatorio entre 25 y 100

Sub prueba2()
Cells(1, 1) = Int((100 – 25) * Rnd + 25)
End Sub