sábado, 4 de diciembre de 2021

Constantes y variables de VBA para Microsoft Excel

En VBA no se puede modificar el valor de una constante.

Aunque si los valores de las variables.

Para definir una variable se usa la siguiente sintaxis.

Const aniosMayoriaEdad As Integer = 18

Hoy lo veremos en el siguiente código.


Sub variables()

    'Constante

    Const aniosMayoriaEdad As Integer = 18

     MsgBox (aniosMayoriaEdad)

    

    'aniosMayoriaEdad = 12

    MsgBox (aniosMayoriaEdad)


    'Variable

    Dim numeroEntero As Integer

    MsgBox (numeroEntero)

    numeroEntero = 14

    MsgBox (numeroEntero)

End Sub




En primer lugar definimos una constante denominan aniosMayoriaEdad con el valor 18 la mostramos en pantalla y posteriormente intentamos cambiar su valor.


En principio el código no da error porque la asignación de un nuevo valor a la constante está comentado pero si eliminamos el comentario podremos ver lo que sucede.


Cuando intentamos cambiar el valor asignado a la constante Editor de visual Basic para aplicaciones provoca un error.

    Const aniosMayoriaEdad As Integer = 18

    aniosMayoriaEdad = 12

Mostrando una ventana de error de compilación con el mensaje "Asignación a la constante no permitida."

Esto es así porque las constantes no permiten alterar su valor.

Son útiles para definir un valor que sabemos que va a ser constante siempre y se va a mantener inalterable.

Sin embargo en muchos casos en lugar de constantes se utilizan variables.

En el ejemplo mostramos la primera ventana de mensaje en la que se muestra el valor de la constante en el momento de la creación.

En este momento se le había asignado el valor 18.


La siguiente ventana de mensaje es una segunda vez que mostramos un valor, tras intentar modificar el valor de la constante.

Dado que hemos tenido que anular la instrucción de asignación porque él entorno de programación no nos permitía asignar un nuevo valor a la constante el valor será el mismo.


La tercera vez que mostramos un valor se corresponde a la instrucción que está justo despues de la creación de la variable.

Es importante tener en cuenta que una variable cuando se ha creado aunque no se le haya asignado ningún valor tiene un valor.

    Dim numeroEntero As Integer

    MsgBox (numeroEntero)

Este valor va a depender del tipo de variable para variables de tipo entero será el cero.



Asignamos el valor 14 a la variable y volvemos a mostrarla.

    numeroEntero = 14

    MsgBox (numeroEntero)

En este caso a diferencia de la constante sí que ha cambiado el valor almacenado en la variable y mostramos en pantalla el valor 14 en lugar del 0 que mostrábamos originalmente.



Es importante tener en cuenta que las constantes no cambiará nunca de valor y las variables si lo harán además también es muy importante recordar que una variable a la que no se le haya asignado un valor aún así tendrá un valor por defecto.

No hay comentarios:

Publicar un comentario